0

所以我目前在项目级别有一个 XML 节点:

    <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

4 回答 4

3

您可以使用[]

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

或者SelectSingleNode()

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

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

于 2012-06-12T17:47:50.660 回答
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

于 2012-06-12T17:50:28.083 回答
0

并不是说您已经得到的答案有什么问题,但您也可以使用 Linq 来做到这一点。就像是:

node.ChildNodes
    .OfType<XmlNode>()
    .Where(x => x.Name == "Item_Number")
    .Select(x=>x.InnerText).FirstOrDefault();
于 2012-06-12T18:13:56.410 回答
-1

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

于 2012-06-12T17:48:00.080 回答