簡體   English   中英

如何檢查XML中是否存在元素

[英]How to check an element exist in XML

<library>
    <book>
      <id>1</id>
      <name>abc</name>
         <read>
          <data>yes</data>
          <num>20</num>
        </read>
    </book>
    <book>
      <id>20</id>
      <name>xyz</name>
         <read>
          <data>yes</data>
        </read>
    </book>
    <book>
      <id>30</id>
      <name>ddd</name>
    </book>
</library>

從這里我正在使用以下代碼讀取元素<id>值= 20的<book>節點

XElement root = XElement.Load("e_test.xml")
XElement book = root.Elements("book")
                    .Where(x => (int) x.Element("id") == 20)
                    .SingleOrDefault();
if (book == null)
{
    // No book with that ID
}



if(book.Element("read").Element("num") != null) //check the node exist
{
    int num = (int) book.Element("read").Element("num");
}

在這里,if條件無法正常運行。 它正在傳遞條件並進入內部並給出null異常。 這是正確的檢查方法嗎?

我正在使用.NET FRAMEWORK 4.0

您需要為每個Elements調用檢查是否為null

if(book != null && book.Element("read") != null && book.Element("read").Element("num") != null) //check the node exist

在C#6中,您可以使用?. 運算符,使其感覺更好:

if(book?.Element("read")?.Element("num") != null) //check the node exist

暫無
暫無

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

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