【问题标题】:Get the Element Value in the XML by using LINQ to XML使用 LINQ to XML 获取 XML 中的元素值
【发布时间】:2014-06-29 09:09:24
【问题描述】:

我正在尝试使用 LINQ to XML 获取 XML 文件的值。

这是 XML 文件的示例块。

<SECTION NAME="Details">
    <COLUMNS>
        <COLUMN NAME="STOCK.STOCK_CODE">CODE A</COLUMN>
        <COLUMN NAME="STOCK.DESCRIPTION">Product A</COLUMN>
        <COLUMN NAME="STOCK.SALES_PRICE">43.65</COLUMN>
        <COLUMN NAME="STOCK.SUPPLIER_PART_NUMBER"></COLUMN>
        <COLUMN NAME="STOCK.UNIT_WEIGHT">65.50</COLUMN>
        <COLUMN NAME="STOCK.OUT_OF_STOCK">0</COLUMN>
        <COLUMN NAME="STOCK.BRAND">ADDIDAS</COLUMN>
        <COLUMN NAME="STOCK.CATEGORY1">MEN</COLUMN>
        <COLUMN NAME="STOCK.CATEGORY2">TOILETERIES</COLUMN>
    </COLUMNS>
</SECTION>
<SECTION NAME="Details">
    <COLUMNS>
        <COLUMN NAME="STOCK.STOCK_CODE">CODE B</COLUMN>
        <COLUMN NAME="STOCK.DESCRIPTION">Product B</COLUMN>
        <COLUMN NAME="STOCK.SALES_PRICE">18.95</COLUMN>
        <COLUMN NAME="STOCK.SUPPLIER_PART_NUMBER">30.45</COLUMN>
        <COLUMN NAME="STOCK.UNIT_WEIGHT">38.50</COLUMN>
        <COLUMN NAME="STOCK.OUT_OF_STOCK">0</COLUMN>
        <COLUMN NAME="STOCK.BRAND">REVLON</COLUMN>
        <COLUMN NAME="STOCK.CATEGORY1">WOMEN</COLUMN>
        <COLUMN NAME="STOCK.CATEGORY2">PERFUMES</COLUMN>
    </COLUMNS>
</SECTION>

我使用 LINQ to XML 将值放入对象中。而不是使用固定位置,我想通过使用“名称”的值来获取值。请指导我如何选择这些值?谢谢。

foreach (var page in root.Elements("PAGE").Elements("SECTIONS").Elements("SECTION"))
                {
                    CurrentProduct = string.Empty;

                    if (page.Attribute("NAME").Value == "Details")
                    {
                        var sec = page.Element("COLUMNS");

                        UploadPrice pp = new UploadPrice();

                        pp.Code = sec.Elements("COLUMN").ElementAt(0).Value;
                        pp.Net = sec.Elements("COLUMN").ElementAt(2).Value;
                        pp.POR25 = sec.Elements("COLUMN").ElementAt(3).Value;
                        pp.SSP = sec.Elements("COLUMN").ElementAt(4).Value;

                        UploadPrices.Add(pp);
                    }
                }

【问题讨论】:

    标签: c# asp.net linq-to-xml


    【解决方案1】:

    使用例如pp.Code = sec.Elements("COLUMN").First(c =&gt; c.Attribute("NAME").Value == "STOCK.STOCK_CODE").Value; 等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多