Linq to XML чтение внешнего узла - PullRequest
0 голосов
/ 03 июня 2011

Может кто-нибудь показать мне, как читать внешний узел ниже, используя 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>

1 Ответ

1 голос
/ 03 июня 2011

Чего именно вы хотите достичь?Кажется, что каждый элемент 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)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...