xml - 从 XmlNode 创建 Xdocument 对象

标签 xml vb.net linq-to-xml

我调用了一个成功返回 XML 响应的 SOAP/XML 类型的 Web 服务。

到目前为止,我已经设法获取返回的对象,将其转换为 XmlNode 对象......并按预期在其中找到了实际数据。一切顺利。

不过,现在我想将我的数据绑定(bind)到 Windows 窗体中的 DataGridView。 我在这里看到了一个很好的例子 C# DataGridView binding to subset of XML使用 XDocument 和 LINQ 为网格提供数据源,这对我来说似乎非常有效。

我遇到的问题是我不知道如何根据调用 Web 服务返回的对象创建 XDocument。我该怎么做?

这就是我从 web 服务捕获返回数据的方式..有效..

' call the webservice  '
Dim rawResults As Object = lw.runQuery(parameter1,parameter2)

Dim testresult As XmlNode = DirectCast(rawResults, XmlNode)

Dim docXml As New XmlDocument
docXml.AppendChild(docXml.ImportNode(testresult, True)).

.etc

这是网络服务返回的 XML。(每个“runQueryResult”将成为 DataGridView 中的一行)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <runQueryResponse xmlns="http://xxx.ddd.com/">
    <runQueryResult>
        <runQueryResponse xmlns="">
        <runQueryRecord>
            <catalogid>513</catalogid>
            <name>Vacuum tube </name>
            <this_month>0</this_month>
            <month_past1>1</month_past1>
            <month_past2>0</month_past2>
            <month_past3>0</month_past3>
            <month_past4>0</month_past4>
            <month_past5>0</month_past5>
            <month_past6>0</month_past6>
        </runQueryRecord>
        <runQueryRecord>
            <catalogid>5311</catalogid>
            <name>Adapter expansion</name>
            <this_month>0</this_month>
            <month_past1>1</month_past1>
            <month_past2>0</month_past2>
            <month_past3>0</month_past3>
            <month_past4>0</month_past4>
            <month_past5>0</month_past5>
            <month_past6>0</month_past6>

                            ... etc.

最佳答案

您可以直接从XmlNode 创建XDocument,因此您不必创建XmlDocument 实例:

Dim xDoc As XDocument = XDocument.Load(New XmlNodeReader(testresults))

关于xml - 从 XmlNode 创建 Xdocument 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18629367/

相关文章:

mysql - VB.NET学分系统

c# - Linq to XML 从 twitter API 解析单个 "status"节点

c# - 如何查找缺少特定子节点的 XML 节点?

xml - 如何使用 xml golang std 查找已知属性和 token 的值。库

xml - golang 读取 XML 内存泄漏?

Android,创建渐变边框?

python - BeautifulSoup : getting contents of all <tag> in xml-ish file

vb.net - 使用BackgroundWorker检查元素是否存在于WebBrowser中

java - 自动化 Internet Explorer 时如何等待 Java 小程序加载?

c# - 读取和使用 XML 文件作为数据库 - Windows Phone 7 应用程序