0

私は Windows 8 アプリを構築しています。大きな XML ドキュメントから XML ノード全体とその子を文字列として抽出する必要があります。これまでのところ、それを行うメソッドは次のようになります。

    public string GetNodeContent(string path)
    {
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.IgnoreWhitespace = true;
        settings.ConformanceLevel = ConformanceLevel.Auto;
        settings.IgnoreComments = true;
        using (XmlReader reader = XmlReader.Create("something.xml", settings))
        {
            reader.MoveToContent();
            reader.Read();

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(reader.ReadOuterXml());
            IXmlNode node = doc.SelectSingleNode(path);

            return node.InnerText;

        }
    }

任意の形式の xpath を渡すと、ノードは null の値を取得します。リーダーを使用してルート ノードの最初の子を取得し、XMLDocument を使用してその xml から子を作成しています。Windows 8なので、どうやら、XPathSelectElementsメソッドを使用できず、これが私が考えられない唯一の方法です。これ、または他のロジックを使用してそれを行う方法はありますか?

ご回答ありがとうございます。

[アップデート]

XML に次の一般的な形式があるとします。

<nodeone attributes...>
    <nodetwo attributes...>
        <nodethree attributes... />
        <nodethree attributes... />
        <nodethree attributes... />
    </nodetwo>
</nodeone >

「/nodeone/nodetwo」または「//nodetwo」を渡すと、結果としてnodetwoとそのすべての子がxml文字列の形式で取得されることを期待しています

4

1 に答える 1