【发布时间】:2014-04-01 23:05:28
【问题描述】:
我下面有xml:
<Team>
<Member Name="Alex" Info="<Details Weight="80" Category="Fighter" LastFight="2014-03-01" />"/>
</Team>
我想找到一种方法来直接加载属性 LastFight,而无需创建大量 xmldocuments。这是我使用的代码:
Dim storagexml As New XmlDocument
storagexml.LoadXml(<Team><Member Name="Alex" Info="<Details Weight="80" Category="Fighter" LastFight="2014-03-01" />"/></Team>)
Dim tempnodelist As XmlNodeList = storagexml.SelectNodes("Team/Member")
For Each tempnode As XmlNode In tempnodelist
If tempnode.Attributes("Name") IsNot Nothing Then
Dim tempdoc As New XmlDocument
tempdoc.LoadXml(tempnode.Attributes("Info").Value)
Dim tempsel As XmlNode = tempdoc.SelectSingleNode("Info")
If Not tempsel.Attributes("LastFight").Value.Trim() = "" Then
RichTextBox1.AppendText(tempnode.Attributes("Name").Value & " " & tempsel.Attributes("LastFight").Value & vbCrLf)
End If
【问题讨论】:
-
目前我脑海中浮现的最大问题是:为什么在 XML 文件的属性中包含 HTML 编码的 XML?这可能是您可以更改的东西,而不是尝试将属性作为字符串提取,解码 HTML 编码的字符并将其加载到 XML 文档中?
-
因为会有一些文本在里面包含&符号。为了防止出现任何错误,决定照原样放。
-
因此,您对可能包含与号的文本进行编码,仅此而已。对整个 XML 文档进行编码并将其放入另一个 XML 文档的文本属性中,类似于使用大锤杀死蚂蚁。