在下面的代码片段中,当我遇到一个元素时,使用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>
答案 0 :(得分:3)
我还没有尝试过,但我不希望你在调用ReadOuterXml之后必须快速读取它。我希望读取外部XML的行为能够消耗它。
你试过吗?