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 获得的元素已被解析时,我如何快进我的 XmlReader 以忽略后续的 XmlNodeType.Text 和 XmlNodeType.EndElement?

更新:对于以下代码片段,loc1 在 taglist 中,因此使用 ReadOuterXml 编写,但解析器无法获取以下“!” 特点。

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

1 回答 1

3

我没有尝试过,但我不希望您在调用 ReadOuterXml 后必须快进阅读器。我希望读取外部 XML 的行为能够使用它。

你试过了吗?

于 2008-10-24T17:02:47.137 回答