3
我收到了一個非常奇怪的行爲,無法確定問題。在下面的代碼片段有望走出了XmlReader的ReadString方法刪除/忽略CDATA標記
<![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);
在這方面的任何幫助將是非常可觀的。
感謝溼婆。我正在思考同樣的問題。請你讓我知道爲什麼Readstring()忽略CDATA? – Rizwan
在XML中「![CDATA」是一個類似於「<" or ">」的特殊標籤。 XmlReader以與忽略「<" or ">」相同的方式忽略它。 – jing