1
我有以下XML文件:如何閱讀CDATA XML內容
<?xml version="1.0" encoding="utf-8"?>
<root>
<phrase id="test"><![CDATA[test]]></phrase>
<phrase id="test0"><![CDATA[test0]]></phrase>
<phrase id="test2"><![CDATA[test2]]></phrase>
<phrase id="test3">test3</phrase>
<phrase id="test4">
<![CDATA[test4
LINEBREAK]]>
</phrase>
<phrase id="test5">
LINEBREAK</phrase>
<phrase id="test6"><![CDATA[test6]]></phrase>
<phrase id="test7">
<![CDATA[test7
ANOTHER LINEBREAK]]>
</phrase>
</root>
正如你所看到的,emelemts可以包含CDATA節正確包裹換行符和空格。問題是,如果我使用以下代碼,則捕獲CData之前和之後的換行符和製表符。
所以我決定使用IgnoreWhitespace=true
,但是這會跳過每個第二個節點。這是爲什麼?
XmlReaderSettings sett = new XmlReaderSettings();
sett.IgnoreWhitespace = true;
using (XmlReader r = XmlTextReader.Create(filePath, sett))
{
while (r.ReadToFollowing("phrase"))
{
string attrib = r.GetAttribute("id").ToLowerInvariant();
string content = r.ReadElementContentAsString();
}
}
請注意,我的項目僅限於.NET 2.0
似乎與ReadString工作,但有什麼區別?我想了解這個問題。 – Uwe 2010-02-16 12:32:38
沒有機會知道? – Uwe 2010-02-22 17:25:58