如何从XML文档中提取XML块?

时间:2010-06-22 13:06:08

标签: c# .net 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 个答案:

答案 0 :(得分:2)

您是否尝试使用SelectSingleNode?

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

查看XPath

希望这会有所帮助......

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

答案 1 :(得分:1)

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

沿着那条线,您可能需要调整Element调用。