如何操作 XDocument 对象
How to manipulate an XDocument object
我有一个 XDocument 类型的对象 'xmlResponse',其中包含以下 XML 数据:
<ArrayOfAuthorEntry xmlns="http://schemas.datacontract.org/2004/07/BooksService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<AuthorEntry>
<AuthorID>1</AuthorID>
<FirstName>Paul</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
<AuthorEntry>
<AuthorID>2</AuthorID>
<FirstName>Harvey</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
<AuthorEntry>
<AuthorID>3</AuthorID>
<FirstName>Abbey</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
</ArrayOfAuthorEntry>
但是在尝试提取值并将它们附加到文本框时,我发现 foreach 语句中的代码由于某种原因从未运行过:
foreach (XElement elem in xmlResponse.Descendants("AuthorEntry"))
{
// this line never runs confirming code inside foreach never even reached
resultTextBox.AppendText("Test");
// can't even confirm if following lines will work correctly as a result
resultTextBox.AppendText(elem.Element(xmlNamespace + "AuthorID").Value + " ");
resultTextBox.AppendText(elem.Element(xmlNamespace + "FirstName").Value + " ");
resultTextBox.AppendText(elem.Element(xmlNamespace + "LastName").Value + "\n");
}
脱离了我在网上看到的例子,所以我不确定我做错了什么,或者 foreach 中的代码是否能正常工作。我想做的只是将文本附加到 'resultTextBox',如下所示:
1 Paul Deitel
2 Harvey Deitel
3 Abbey Deitel
感谢任何帮助,并在此先致谢。
您没有使用 AuthorEntry
的默认命名空间前缀:
XNamespace xmlNamespace = "http://schemas.datacontract.org/2004/07/BooksService";
.....
foreach (XElement elem in xmlResponse.Descendants(xmlNamespace + "AuthorEntry"))
我有一个 XDocument 类型的对象 'xmlResponse',其中包含以下 XML 数据:
<ArrayOfAuthorEntry xmlns="http://schemas.datacontract.org/2004/07/BooksService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<AuthorEntry>
<AuthorID>1</AuthorID>
<FirstName>Paul</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
<AuthorEntry>
<AuthorID>2</AuthorID>
<FirstName>Harvey</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
<AuthorEntry>
<AuthorID>3</AuthorID>
<FirstName>Abbey</FirstName>
<LastName>Deitel</LastName>
</AuthorEntry>
</ArrayOfAuthorEntry>
但是在尝试提取值并将它们附加到文本框时,我发现 foreach 语句中的代码由于某种原因从未运行过:
foreach (XElement elem in xmlResponse.Descendants("AuthorEntry"))
{
// this line never runs confirming code inside foreach never even reached
resultTextBox.AppendText("Test");
// can't even confirm if following lines will work correctly as a result
resultTextBox.AppendText(elem.Element(xmlNamespace + "AuthorID").Value + " ");
resultTextBox.AppendText(elem.Element(xmlNamespace + "FirstName").Value + " ");
resultTextBox.AppendText(elem.Element(xmlNamespace + "LastName").Value + "\n");
}
脱离了我在网上看到的例子,所以我不确定我做错了什么,或者 foreach 中的代码是否能正常工作。我想做的只是将文本附加到 'resultTextBox',如下所示:
1 Paul Deitel
2 Harvey Deitel
3 Abbey Deitel
感谢任何帮助,并在此先致谢。
您没有使用 AuthorEntry
的默认命名空间前缀:
XNamespace xmlNamespace = "http://schemas.datacontract.org/2004/07/BooksService";
.....
foreach (XElement elem in xmlResponse.Descendants(xmlNamespace + "AuthorEntry"))