【发布时间】:2011-11-01 08:00:31
【问题描述】:
我有一个没有类似于以下格式的 XML 字符串:
<SomeTag><Tag>tag 1</Tag><Tag>tag 2</Tag><Tag>tag 3</Tag><Tag>tag 4</Tag></SomeTag>
当我运行这段代码时:
using (XmlReader reader = XmlReader.Create(stream))
{
reader.MoveToContent();
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (string.Compare(reader.Name, name, StringComparison.InvariantCultureIgnoreCase) == 0))
{
var element = (XElement)XNode.ReadFrom(reader);
yield return element;
}
}
reader.Close();
}
它只将节点的标签1和标签3识别为Element,将标签2和标签4识别为TextNodes。
为什么?
我该怎么做才能解决它?
仅供参考,如果我在每个标签之后添加带有换行符的格式,它会按预期工作,将所有标签识别为元素。但是,我无法控制提供给我的 XML。
【问题讨论】:
标签: .net .net-4.0 linq-to-xml xmlreader