web service 返回 XMlnode,客户端无法接收的问题

hardVB 2002-04-08 01:54:51
web service 定义如下

<WebMethod()> Public Function SendXMLData(ByVal intShopID As Integer) As Xml.XmlNode
Dim XMLDom As New MSXML2.DOMDocument40()
Dim Xmlnode As Xml.XmlNode
If XMLDom.load("c:\transfer.xml") Then
Xmlnode = XMLDom.selectSingleNode("MsgHead")
Return Xmlnode
End If
End Function

客户端接收如下
Set XMLnode = Client.SendXMLData(12)
此时报错

将返回类型改为String 就可以。

...全文
173 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
acptvb 2002-07-09
  • 打赏
  • 举报
回复
感谢您使用微软产品。

根据您提供的信息,问题可能存在与如下几个方面:
(1)调用的Web Method没有返回正确的XmlNode,可能返回的xmlnode为Nothing;
(2)建议采用XmlDataDocument对象代替如下语句:Dim XMLDom As New MSXML2.DOMDocument40()
为Dim XMLDom As New XmlDataDocument()
(3)如果客户端采用VB.NET的开发环境,则不存在如下的赋值方式:
Set XMLnode = Client.SendXMLData(12) 可替换为(VB.NET):
Dim xmlnode As XmlNode
xmlnode = ws.SendXMLData(123)
===================
如下提供一段示例代码,实现调用Web Service,返回符合要求的XmlNode对象,并显示在客户端的TextBox文本框中。供您参考与对照:
其中测试环境为.Net Framework Version 1.0,客户端采用VB.NET。

=============== 应用程序示例代码 =======
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ws As localhost.XmlNodeService = New localhost.XmlNodeService()
Dim xmlnode As XmlNode
xmlnode = ws.SendXMLData(123)
If IsNothing(xmlnode) Then
MessageBox.Show("IsNothing")
Else
TextBox1.Text = xmlnode.OuterXml.ToString()
End If
End Sub

====== xmlnode.asmx ===================
<%@ WebService Language="VB" Class="XmlNodeService" %>
Imports System
Imports System.Web.Services
Imports System.Xml


Public Class XmlNodeService : Inherits WebService
<WebMethod()> Public Function SendXMLData(ByVal intShopID As Integer) As Xml.XmlNode
Dim XMLDom As New XmlDataDocument()
Dim Xmlnode As Xml.XmlNode
XMLDom.load("c:\\homeworks\\Contract.xml")
'Selects the first XmlNode that matches the XPath expression.
Xmlnode = XMLDom.selectSingleNode("//Contract")
Return Xmlnode
End Function
End Class
====== Contract.xml ===========
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by rickie (rickie) -->
<Contracts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\homeworks\XML_SPY\Contract.xsd">
<Contract>
<ID>1</ID>
<UnitPrice>3950</UnitPrice>
<TotalPrice>350000</TotalPrice>
</Contract>
<Contract>
<ID>2</ID>
<UnitPrice>3951</UnitPrice>
<TotalPrice>370000</TotalPrice>
</Contract>
<Contract>
<ID>3</ID>
<UnitPrice>111</UnitPrice>
<TotalPrice>222</TotalPrice>
</Contract>
</Contracts>



— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
shanhe 2002-07-08
  • 打赏
  • 举报
回复
wsdl正确么?
johnsonrao 2002-07-08
  • 打赏
  • 举报
回复
帮你提一提!

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧