加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从XmlNode创建Xdocument对象

发布时间:2020-12-16 22:41:55 所属栏目:百科 来源:网络整理
导读:我调用了一个成功返回 XML响应的SOAP / XML类型Web服务. 到目前为止,我已设法获取返回的对象,将其转换为XmlNode对象..并按预期在那里找到了实际数据.都好. 但是,现在,我想将我的数据绑定到Windows窗体中的DataGridView. 我在这里看到一个很好的例子C# DataGr
我调用了一个成功返回 XML响应的SOAP / XML类型Web服务.

到目前为止,我已设法获取返回的对象,将其转换为XmlNode对象..并按预期在那里找到了实际数据.都好.

但是,现在,我想将我的数据绑定到Windows窗体中的DataGridView.
我在这里看到一个很好的例子C# DataGridView binding to subset of XML使用XDocument和LINQ为网格提供一个看起来对我来说非常好的数据源.

我遇到的问题是我不知道如何根据我对Web服务的调用返回的对象创建一个XDocument.我怎样才能做到这一点 ?

这就是我从webservice中捕获返回数据的方法..哪个有效..

' 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

这是webservice返回的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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读