3

非常に奇妙な動作になり、問題を特定できません。次のコード スニペットでは、アウトが期待されていました

<![CDATA[<air:FareInfo Key="10T"></air:FareInfo>/>]]>

しかし、私は得ています

<air:FareInfo Key="10T"></air:FareInfo>/>

出力に CDATA タグがないのはなぜですか? 私は単に XmlReader.ReadString() を使用していますが、CDATA タグは無視されます。

 string xml = "<FareInfo>" + 
        "<![CDATA[<air:FareInfo Key=\"10T\">" + 
            "</air:FareInfo>/>]]>" + 
        "</FareInfo>";

        Encoding encoding = new UTF8Encoding();
        byte[] buffer = encoding.GetBytes(xml);
        MemoryStream stream = new MemoryStream(buffer);

        XmlReaderSettings settings = new XmlReaderSettings();
        XmlReader reader = XmlReader.Create(stream, settings);

        reader.Read();

        string output = reader.ReadString();

        Console.Write(output);

この点での助けは非常に高く評価されます。

4

1 に答える 1

2

このようにしてください:-

 switch (reader.NodeType) {
      case XmlNodeType.Text:
          Console.Write(reader.Value);
          break;
       case XmlNodeType.CDATA:
           Console.Write("<![CDATA[{0}]]>", reader.Value);
           break;
 }
于 2012-06-13T10:43:51.090 に答える