2010-06-22 49 views
0

我想从更大的XML文档中提取一大块XML。 例如,我的XML文档看起来像这样如何从XML文档中提取XML块?

<?xml version="1.0" encoding="utf-8"?> 
<Root> 
<CONTAINER> 
    <FIRSTNODE> 
     <CHILDNODE> 
     </CHILDNODE> 
    </FIRSTNODE> 
</CONTAINER> 
</Root> 

如果我想提取任何部分。例如,我希望提取包含属性标记和值的所有内容,我应该如何在C#中执行此操作?

我试过使用这段代码,但它似乎没有做到这一点。

 XmlDocument xdoc = new XmlDocument(); 
    xdoc.LoadXml(inputXML); 
    Console.WriteLine(inputXML); 
    string strOut = ""; 

    XmlNode node = xdoc.DocumentElement.ParentNode; 
    XmlNodeList nodeList = node.ChildNodes; 
    for (int n = 0; n < nodeList.Count; n++) 
    { 
     Console.WriteLine(nodeList[n].Name); 
     if (nodeList[n].Name == "FIRSTNODE") 
     { 
      strOut = nodeList[n].OuterXml.ToString(); 
      Console.WriteLine(strOut.Length.ToString()); 
      return strOut; 
     } 
    } 

回答

2

您是否试过SelectSingleNode?

XmlNode n = xdoc.SelectSingleNode("//FIRSTNODE");  
Console.WriteLine(n.OuterXml); 

看一看XPath的

希望这有助于...

PS:很抱歉,但我是新来的,不知道编辑器...

1
XEelement root = xml document; 
XElement first = root.Element("Root").Element("Container").Element("FirstNode"); 

沿着这条线的东西,你可能需要调整元话费。