如何获取XML文档的InnerText?

时间:2018-09-19 00:44:12

标签: c# .net

我正在使用XML Reader读取看起来像这样的XML文档

<?xml version="1.0"?>
<profile username="666">
  <purchases>
    <purchase id="221"> 
      <price>5599</price>
      <quantity>22<quantity>
      <description>This is some placeholder text</description>
    </purchase>
  <purchases>
    <purchase id="621"> 
      <price>234</price>
      <quantity>5<quantity>
      <description>This is some placeholder text</description>
    </purchase>
  </purchases>
</profile>

我想获取元素的购买ID,价格,数量和描述,然后将其添加到我的配置文件方法中。

这是我当前的代码

using (XmlReader reader = XmlReader.Create(doc))
{
    while(reader.ReadToFollowing("purchase"))
    {
        var id = reader.GetAttribute("id");

        while(reader.ReadToFollowing("price"))
        {

        }
    }
}

我正在苦苦挣扎的是如何获取价格,数量等的内部内容。

2 个答案:

答案 0 :(得分:0)

您只需使用VALUE

即可代替属性等
while(reader.ReadToFollowing("price"))
{
  Console.WriteLine(reader.Value);
}

答案 1 :(得分:0)

您可以使用LINQ to XML。 下面的示例将获取XML上的所有价格节点

var xml = XElement.Load(YourXMLDocumentPath);

var allPriceNodes = xml.Elements()
    .Where(el => el.Name.LocalName == "purchases")
    .Elements()
    .Where(el => el.Name.LocalName == "purchase")
    .Elements()
    .Where(el => el.Name.LocalName == "price");

您还可以获得特定的值,例如可以添加.FirstOrDefault()。Value;的第一个价格标签值。