Xml节点实际上不是节点,需要获取属性

时间:2015-08-06 19:39:45

标签: c# xml

这是xml:

<_text_column min_width="0" max_width="2031051">
    <PF_Para_Base align="center">
        <_char data_tag="PricesGoodText" font_size="35270" bold="true" italic="false" font_name="/ITC Franklin Gothic Demi" text_color="White">PricesGoodText</_char>
    </PF_Para_Base>
</_text_column>

我正在打开并向文件追加根,因为我收到了文件

的多根错误
using (var fs = new StreamReader(fullFileName))
using (var xr = XmlReader.Create(fs, settings))
{
    while (xr.Read())
    {
        if (xr.NodeType == XmlNodeType.Element)
        {
            rootElement.Add(XElement.Load(xr.ReadSubtree()));
        }
    }
}

var attr = rootElement.Elements("char").Attribute("data_tag");

我需要从节点data_tag中获取属性_char。它以null返回。

1 个答案:

答案 0 :(得分:3)

Elements错误,因为Descendants只读了直接的孩子,你应该使用rootElement.Descendants("_char").Select(c => c.Attribute("data_tag").Value);

function diff(arr1, arr2) {
  var newArr = [];
  //code here
  return newArr;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);

检查此问题:What is the difference between Linq to XML Descendants and Elements