2

次のスニペットでは、要素に遭遇したときに 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>
4

1 に答える 1

3

試したことはありませんが、ReadOuterXml を呼び出した後にリーダーを早送りする必要があるとは思いません。外側の XML を読み取るという行為がそれを消費することを期待しています。

試してみましたか?

于 2008-10-24T17:02:47.137 に答える