1

XML ストリームから属性を読み取ろうとしています。

XML コードの例を次に示します。

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<catalog version="1.1">
<dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX4" format="XXX" starttime="XXX" endtime="XXX" extentleft="XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" />
<dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX4" format="XXX" starttime="XXX" endtime="XXX" extentleft="XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" />
<dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX4" format="XXX" starttime="XXX" endtime="XXX" extentleft="XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" />
</catalog>
</string>

私が読んでいるコードは次のとおりです。

XmlTextReader readerXML = new XmlTextReader(responseStream);

while (readerXML.Read())
{
if (readerXML.HasAttributes)
{
    Console.WriteLine(readerXML.Name + " Attribute");
    for (int i = 0; i < readerXML.AttributeCount; i++)
    {
        readerXML.MoveToAttribute(i);
        Console.WriteLine("Name: " + readerXML.Name + ", Value: " + readerXML.Value);
    }
}
readerXML.MoveToElement();
}

ただし、印刷のみです。

string Attribute
Name: xmlns, Value: http://schemas.microsoft.com/2003/10/Serialization/

XML で最初の要素が唯一の「要素」と見なされる理由。

ありがとう!

編集 次のコードを使用してストリームを文字列に変換すると:

            WebResponse response = restWebRequest.GetResponse();
            Stream responseStream = response.GetResponseStream();

            StreamReader reader = new StreamReader(responseStream);
            string responseFromServer = reader.ReadToEnd();
            textBox1.Text = responseFromServer;

私はこのテキストを受け取ります:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
&lt;catalog version="1.1"&gt;
&lt;dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX" format="XXX" starttime="XXX" endtime="XXX" extentleft="-XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" /&gt;
&lt;dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX" format="XXX" starttime="XXX" endtime="XXX" extentleft="-XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" /&gt;
&lt;dataset id="354" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX" format="XXX" starttime="XXX" endtime="XXX" extentleft="-XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" /&gt;
&lt;/catalog&gt;
</string>

XML構文がエンティティに変換されているように?

なぜこれが起こっているのか/それを修正する方法はありますか?

4

1 に答える 1

0

XMLReader の動作を予測することはできません理解するためのヒントはありますか?

Move メソッドを使用しないことをお勧めします。これにより、読者の動作が改善される可能性があります。

編集:ただし、コードをテストしたところ、すべての属性が出力されます。

于 2011-09-16T16:45:03.100 に答える