如何在XML中动态查找子项

时间:2012-10-11 10:38:04

标签: c# asp.net xml

如何检查以下xml中的产品节点是否存在子节点:

   <product>
        <SysSectionName>Processors</SysSectionName>
        <section>
          <subsection>
            <SysSectionName>CPU#1</SysSectionName>
          </subsection>
       </section>
  </product>

我试过这个:

foreach (XmlNode xn1 in sectionNode)
{
  XmlNode node = xn1.FirstChild; 
  if (xn1.HasChildNodes)
  {
     //do something..
  }     
}

4 个答案:

答案 0 :(得分:1)

尝试使用这段代码从XML获取产品节点:

XDocument doc = XDocument.Parse("Your Xml String");

var products = doc.Descendants("product");

foreach (var product in products)
{
    //... do something ...
}

答案 1 :(得分:1)

XmlNodeList snode = xmldoc.SelectNodes("/product/section/subsection");
foreach (XmlNode xn2 in snode)
{
    //it comes inside if there will be a child node.
}

答案 2 :(得分:0)

您的意思是您想要查找产品节点是否有任何子节点? 如果是的话,

XmlNodeList productNodes = xmlDoc.SelectNodes("Product");
foreach(XmlNode pNode in productNodes)
{
  if(pNode.ChildNodes.count >0)
  {
  }
}

答案 3 :(得分:0)

我认为XLinq(Linq for Xml)正是您所需要的。 然后你应该使用XDocument加载Xml,对于任何XElement你都有“Descendants()”方法,它返回子XElements的列表。如果没有子元素,则列表也没有元素。