Linq to XML 读取外部节点

发布于 2024-11-13 14:31:25 字数 1603 浏览 1 评论 0原文

任何人都可以告诉我如何使用 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>

Could anyone please show me how to read the extrinsic node below by using Linq to XML, please;

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

亢潮 2024-11-20 14:31:25

您究竟想实现什么目标?每个 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))。

What exactly do you want to achieve? Each ItemDetail element seems to have two Extrinsic child elements. Do you want to access both?

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")
           };

I am not sure stock code is an integer but of course you could take the string value instead (i.e. (string) instead of (int)).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文