如何在下一级中找到节点的值?

时间:2012-06-12 17:46:00

标签: c# xml

所以我目前在Item级别有一个XML Node:

    <Item>
        <Item_Number>0000000063089</Item_Number>
        <English_Description>MOUNTAIN DEW</English_Description>
        <French_Description>MOUNTAIN DEW</French_Description>
        <Price>219</Price>
        <Department>000006</Department>
        <Department_Description>BEVERAGES</Department_Description>
        <FHST>11</FHST>
        <HST>18</HST>
        <UPC>0006900005056</UPC>
        <Total_Without_Tax>219</Total_Without_Tax>
        <Total_With_Tax>248</Total_With_Tax>
        <Quantity>1</Quantity>
    </Item>

如何获取Item_Number值,该节点仅为0000000063089?在C#。

节点存储为:

     XmlNode node;

4 个答案:

答案 0 :(得分:3)

您可以使用[]

node["Item_Number"].InnerText == "0000000063089"

SelectSingleNode()

node.SelectSingleNode("Item_Number").InnerText == "0000000063089"

后者使用命名空间,前者不使用。

答案 1 :(得分:0)

//Display the contents of the child nodes.
if (node.HasChildNodes)
{
  for (int i=0; i<node.ChildNodes.Count; i++)
  {
    Console.WriteLine(node.ChildNodes[i].InnerText);
  }
}

所以,如果你想要第一个项目那么它就是node.ChildNodes [0] .InnerText

答案 2 :(得分:0)

并不是说你已经得到的答案有任何问题,但你也可以使用Linq来做到这一点。类似的东西:

node.ChildNodes
    .OfType<XmlNode>()
    .Where(x => x.Name == "Item_Number")
    .Select(x=>x.InnerText).FirstOrDefault();

答案 3 :(得分:-1)

您是否查看了XmlNode类的文档? http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.aspx可能有一种财产或方法可以做你想做的事。