簡體   English   中英

如何獲取 XML 文檔中的特定元素?

[英]How do I get a specific element in a XML document?

我有一個看起來像這樣的 XML 文件:

<Info>
  <ID>1</ID>
 <Result>
   <ID>2</ID>
 </Result>
</Info>

我想計算這個文件中有多少信息/結果/ID。 我正在這樣做:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("myFile.xml");
xmlNodeList MyList = xmlDoc.GetElementsByTagName("Info/Result/ID");
int totalCount = MyList.Count;

// other logic...

GetElementsByTagName方法找不到任何“ID”字段。 我想得到“ID = 2”。

我怎么做?

嘗試這個..

var count = xmlDoc.SelectNodes("Info/Result/ID")?.Count ?? 0;

計算 value = 2 的節點

var nodes = xmlDoc.SelectNodes("Info/Result/ID");
var count = 0;
foreach (XmlNode node in nodes)
    if(node.InnerText == "2")
        count++;

在“信息/結果/ID”路徑中查找所有 id

var nodes = xmlDoc.SelectNodes("Info/Result/ID");
var set = new HashSet<String>(); // use list if you want
foreach (XmlNode node in nodes)
    set.Add(node.InnerText);

搞定了,方法如下:


公共 static 無效 MyCountExample(字符串 myXml,出 int myID)

    {
        var stream = new MemoryStream(Encoding.UTF8.GetBytes(myXml ?? ""));

        var reader = XmlReader.Create(stream);
        myID= 0;

        reader.IsStartElement("Info");
        while (!reader.EOF)
        {
            if (reader.ReadToFollowing("Result"))
            {
                if (reader.ReadToDescendant("ID"))
                {
                        myID++;
                    
                    else
                    {
                        return somethingElse();
                    }
                ......

暫無
暫無

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

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