XmlReader - 将当前节点读为字符串

时间:2008-10-24 16:57:52

标签: .net xml vb.net xmlreader

在下面的代码片段中,当我遇到一个元素时,使用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()但它返回了元素及其子内容。这是可以接受的,但是如何快速转发我的XmlReader以忽略后来的XmlNodeType.Text和XmlNodeType.EndElement,当我刚从ReadOuterXml获取的元素被解析时会发生?

更新:对于以下代码段,loc1位于taglist中,因此使用ReadOuterXml编写,但解析器无法获得以下“!”字符。

<para>
  Test blabla <loc1 href="test">complicated</loc1>!
</para>

1 个答案:

答案 0 :(得分:3)

我还没有尝试过,但我不希望你在调用ReadOuterXml之后必须快速读取它。我希望读取外部XML的行为能够消耗它。

你试过吗?