次のスニペットでは、要素に遭遇したときに XmlReader を使用しています。要素内のすべての属性と名前空間の装飾を含めて、そのまま読みたいと思います。oXml.Name プロパティを使用すると、タグ名しか取得できません。タグ自体を取得する機能はありますか?
oXml = XmlReader.Create(path, oXmlSettings)
While oXml.Read()
Select Case oXml.NodeType
Case XmlNodeType.Element
'Read Element as-is
If taglist.contains(oXml.Name)
stringbuilder.Append(oXml.ReadOuterXml())
End If
Case XmlNodeType.Text
stringbuilder.Append(oXml.Value)
End Select
End While
oXml.ReadOuterXml() を試しましたが、要素とそのサブコンテンツが返されます。それは受け入れられるかもしれませんが、ReadOuterXml から取得したばかりの要素が解析されたときに発生する後続の XmlNodeType.Text および XmlNodeType.EndElement を無視するには、XmlReader を早送りするにはどうすればよいでしょうか?
更新: 次のスニペットでは、loc1 はタグリストにあるため、ReadOuterXml を使用して記述されていますが、パーサーは次の「!」を取得できません。キャラクター。
<para>
Test blabla <loc1 href="test">complicated</loc1>!
</para>