【发布时间】:2016-10-11 13:44:33
【问题描述】:
我有一个 XML 文件,我正在尝试使用 vb.net 读取和重写(以供以后操作)到一个新的文本文件。
我能够成功读取 XML 并将其打印出来,但我无法正确获取每个元素/属性的开始和结束标签。
我正在使用“xmlNodeReader”通过获取每次读取的名称和值来读取文档。
然后是 xmlNodeType.Element 或 xmlNodeType.EndElement 的选择案例
我如何获得解决此问题的正确逻辑,因为一些 XML 行的格式为 <Server Type="PropertyDefinitions">,而其他的格式为 <Server Type="aServerName"/>
我已经为endEntity 尝试了一个 if 循环,但似乎没有一个有效。这是(部分)我的代码,它显示了读写功能。
如果我没有提供足够的信息,请告诉我。
Dim reader As XmlNodeReader = New XmlNodeReader(document)
Dim result As New StringBuilder
While reader.Read
Select Case reader.NodeType
Case XmlNodeType.Element
result.Append("<" & reader.Name)
If reader.HasAttributes Then
While reader.MoveToNextAttribute()
result.Append(" " + reader.Name + "=" + Chr(34) + reader.Value + Chr(34))
End While
If XmlNodeType.EndEntity Then
result.Append("/>")
End If
Else
If XmlNodeType.Entity Then
result.Append(">")
ElseIf XmlNodeType.EndEntity Then
result.Append("/>")
End If
End If
Case XmlNodeType.EndElement
result.Append("</" + reader.Name + ">")
End Select
End While
显示 3 种不同类型标签的 XML 示例:
<DocumentSMG Version="6.900000" VersionSeemage="6.12.0.2428">
<Server Type="PropertyDefinitions">
<MetaProperties>
</MetaProperties>
</Server>
<Server Type="aServerType1">
<BOM.Sort.Ascendant Value="1"/>
</Server>
<Server Type="aServerType2"/>
<Server Type="aServerType3"/>
</DocumentSMG>
【问题讨论】:
-
您不使用 XmlDocument 是否有原因?它将允许您保存所有更改而无需自己编写 xml。
标签: xml vb.net if-statement reader