XmlDocument and ReadNode
本文关键字:ReadNode and XmlDocument | 更新日期: 2023-09-27 18:10:39
好吧,我糊涂了。我不明白为什么这不起作用。
给定:
XmlReader reader = ...; //created by calling routine.
XmlDocument tmpDoc = new XmlDocument();
XmlNode a = tmpDoc.ReadNode(reader);
tmpDoc.AppendChild(a);
var t1 = tmpDoc.GetElementsByTagName("Entity")[0];
XmlNode mainNode = tmpDoc.SelectSingleNode("//Entity");
调用GetElementByTagName有效,但调用SelectSingleNode无效。它返回null。我已经尝试了其他形式的选择节点,它们不起作用。
通过调试器,我知道InnerXml是正确的,并包含类似
<Entity>
<aaa />
</Entity>
也:如果我在一个文件中使用相同的XML。
XmlDocument eDoc = new XmlDocument();
eDoc.Load(fileName);
XmlNode eNode = eDoc.SelectSingleNode("/Entity");
。
任何想法。提前感谢。
吉姆·K我试过这个代码:
String xmlString =
@"<Entity>
<aaa />
</Entity>";
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlDocument tmpDoc = new XmlDocument();
XmlNode a = tmpDoc.ReadNode(reader);
tmpDoc.AppendChild(a);
var t1 = tmpDoc.GetElementsByTagName("Entity")[0];
XmlNode mainNode = tmpDoc.SelectSingleNode("//Entity");
}
对GetElementsByTagName
和SelectSingleNode
都有效。所以我猜您的XML是无效的。也许您可以发布重现问题的XML ?