首页 > 解决方案 > 如何使用 XmlNode() 作为 VB.NET 中 web 服务的结果?

问题描述

Web 服务只返回 XmlNode():

Dim nodes() As XmlNode = CType(result.handler, XmlNode())

首先,如何将此结果视为纯 xml(在 Visual Studio 中)?

然后,如何使用这个结果并从中导航/选择具体项目?

标签: xmlvb.netxmlnode

解决方案


首先,如何将此结果视为纯 xml(在 Visual Studio 中)?

您可以使用XmlNode.WriteTo(XmlWriter)方法,使用XmlWriter为写入StringBuilder对象(文档)而创建的对象,例如:

Imports System.Text
Imports System.Xml

'[...]
Public Function NodesToString(nodes() As XmlNode) As String

   Dim sb As New StringBuilder()

   Dim settings As New XmlWriterSettings()
   settings.ConformanceLevel = ConformanceLevel.Fragment
   settings.Indent = True

   Dim writer = XmlWriter.Create(sb, settings)
   For Each node In nodes
      node.WriteTo(writer)
   Next
   writer.Close()

   Return sb.ToString()

End Function

之后,您的节点的所有内容都应该在您的StringBuilder对象上,并且简单sb.ToString()会向您显示所有内容。

然后,如何使用这个结果并从中导航/选择具体项目?

XmlNode是库中很多元素的基类System.Xml,甚至XmlDocument还有XmlElement类,所以有很多 XML“导航能力”。

如文档所述:

此类实现 W3C 文档对象模型 (DOM) 级别 1 核心和核心 DOM 级别 2。DOM 是 XML 文档的内存(缓存)树表示。XmlNode是 DOM 的 .NET 实现中的基类。它支持 XPath 选择并提供编辑功能。该类XmlDocument扩展XmlNode并表示一个 XML 文档。您可以使用它XmlDocument来加载和保存 XML 数据。它还包括创建节点的方法。有关详细信息,请参阅XML 文档对象模型 (DOM)

您可以使用这些属性或方法来浏览您的 XML 节点,例如:


推荐阅读