0

私はxmlファイルに次のものを持っています:

<MyTag>Inner Text</MyTag>

私のコードでは、xmlファイルを読み取るために次のものがあります。

XmlNodeReader nodeReader = new XmlNodeReader(myXmlDoc);
while (nodeReader.Read());
{
    string temp = nodeReader.Name;
}

<MyTag>xmlで正常に読み取られた後、空白で読み取られ、次のタグに移動します。何故ですか?

編集:

また、最初の要素が正しく読み込まれることにも気づきましたが、2番目の要素の内部テキストが通っていません。

4

1 に答える 1

0

「;」があるため、ループは空のループであることに注意してください。while 行では、何も読み取らずにリーダーを最後まで移動することを意味します。「;」を削除します より良い結果が得られるはずです。次に例を示します。

    static void Main(string[] args)
    {
        XmlDocument myXmlDoc = new XmlDocument();
        myXmlDoc.LoadXml("<MyTag>Inner Text</MyTag>");

        XmlNodeReader nodeReader = new XmlNodeReader(myXmlDoc);
        while (nodeReader.Read())
        {
            Console.WriteLine(
                "Node Type : {0}, Node Name: {1}, Node Value {2}", 
                nodeReader.NodeType, 
                nodeReader.Name, 
                nodeReader.Value);
        }

    }

そして結果。

Node Type : Element, Node Name: MyTag, Node Value
Node Type : Text, Node Name: , Node Value Inner Text
Node Type : EndElement, Node Name: MyTag, Node Value

何かキーを押すと続行します 。. .

要素と属性のみに名前があるため、テキスト ノードの名前は空であることに注意してください。

于 2012-11-15T05:29:54.443 に答える