我删除了我最后一个措辞不佳的问题,并将其归结为最简单的形式。我试图选择一个根节点,但它将返回null。
这是我的XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<children>
<child>Clark</child>
<child>Bruce</child>
<child>Peter</child>
</children>
</root>
这是我的代码
XmlDocument input = new XmlDocument();
XmlDocument output = new XmlDocument();
input.Load(@"simple.xml");
XmlNode outputNode = output.CreateNode(XmlNodeType.Element, input.ChildNodes[1].Name, null);
Console.WriteLine(outputNode.SelectSingleNode("root") == null ? "null" : "node found");
Console.WriteLine(outputNode.SelectSingleNode("/root") == null ? "null" : "node found");
Console.WriteLine(outputNode.SelectSingleNode("//root") == null ? "null" : "node found");
//After doing this, /root and //root return the root node
output.AppendChild(node);
Console.WriteLine(outputNode.SelectSingleNode("root") == null ? "null" : "node found");
Console.WriteLine(outputNode.SelectSingleNode("/root") == null ? "null" : "node found");
Console.WriteLine(outputNode.SelectSingleNode("//root") == null ? "null" : "node found");
编辑:@Marc让我走上正轨。实际上将节点添加到XmlDocument使其工作
答案 0 :(得分:1)
您已创建了一个新的孤儿节点(即尚未在树中),没有任何后代。 相对于孤儿的查询没有找到任何内容是合理的。
要查找现有节点,请查看.DocumentElement
,.SelectSingleNode(...)
和SelectNodes(...)