【问题标题】:Linq to XML reading Extrinsic nodeLinq to XML 读取外部节点
【发布时间】:2011-06-03 11:24:03
【问题描述】:

谁能告诉我如何使用 Linq to XML 读取下面的外部节点;

<Root>
<ItemDetail>
      <UnitPrice>
        <Money currency="NZ">32</Money>
      </UnitPrice>
      <Description xml:lang="en">abc description</Description>
      <UnitOfMeasure>CU</UnitOfMeasure>
      <Classification domain="N/A"/>
      <ManufacturerPartID>12345678</ManufacturerPartID>
      <Extrinsic name="StockCode">23333</Extrinsic>
      <Extrinsic name="Quantity">1</Extrinsic>
 </ItemDetail>
<ItemDetail>
      <UnitPrice>
        <Money currency="NZ">32</Money>
      </UnitPrice>
      <Description xml:lang="en">abc description</Description>
      <UnitOfMeasure>CU</UnitOfMeasure>
      <Classification domain="N/A"/>
      <ManufacturerPartID>12345678</ManufacturerPartID>
      <Extrinsic name="StockCode">23333</Extrinsic>
      <Extrinsic name="Quantity">1</Extrinsic>
 </ItemDetail>
<ItemDetail>
      <UnitPrice>
        <Money currency="NZ">32</Money>
      </UnitPrice>
      <Description xml:lang="en">abc description</Description>
      <UnitOfMeasure>CU</UnitOfMeasure>
      <Classification domain="N/A"/>
      <ManufacturerPartID>12345678</ManufacturerPartID>
      <Extrinsic name="StockCode">23333</Extrinsic>
      <Extrinsic name="Quantity">1</Extrinsic>
 </ItemDetail>
</Root>

【问题讨论】:

  • 答案与您提出的最后一个问题 (stackoverflow.com/questions/6167541/…) 不会有太大不同。尝试适应它。
  • @Martin,如果您仔细阅读,您提供的链接不会回答外部节点。我试过了,有没有办法在 linq to xml 中读取名称,因为我的两个名称属性都相同?

标签: linq-to-xml


【解决方案1】:

您到底想实现什么?每个ItemDetail 元素似乎有两个Extrinsic 子元素。你想同时访问两者吗?

var data = from item in XElement.Load("file.xml").Elements("ItemDetail")
           select new {
              stockcode = (int)item.Elements("Extrinsic").First(e => e.Attribute("name").Value == "StockCode"),
              quantity = (int)item.Elements("Extrinsic").First(e => e.Attribute("name").Value == "Quantity")
           };

我不确定股票代码是一个整数,但你当然可以取而代之的是字符串值(即(string) 而不是(int))。

【讨论】:

  • 谢谢@Martin。正是我正在寻找的,感谢它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多