无法从XmlElement中选择根节点

时间:2011-04-26 17:01:13

标签: c# xml

我删除了我最后一个措辞不佳的问题,并将其归结为最简单的形式。我试图选择一个根节点,但它将返回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使其工作

1 个答案:

答案 0 :(得分:1)

您已创建了一个新的孤儿节点(即尚未在树中),没有任何后代。 相对于孤儿的查询没有找到任何内容是合理的。

要查找现有节点,请查看.DocumentElement.SelectSingleNode(...)SelectNodes(...)