簡體   English   中英

如何操作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使用默認名稱空間前綴的AuthorEntry

XNamespace xmlNamespace = "http://schemas.datacontract.org/2004/07/BooksService";
.....
foreach (XElement elem in xmlResponse.Descendants(xmlNamespace + "AuthorEntry"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM