次の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 の BEFORE と AFTER の改行とタブもキャプチャされることです。
を使用することにしましIgnoreWhitespace=true
たが、これは 2 つおきのノードをスキップします。何故ですか?
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に限定されていることに注意してください