如何用VB与XML网页互动?

whatday 2008-04-15 02:49:57
用WebBrowser.Navigate 访问了一个网站 这个网站返回一个XML网页 我怎么解析这个XML网页
XML网页如下
<?xml version="1.0" encoding="gb2312" ?>
- <data>
<item UPName="test" PetId="1" UPLevel="4" UPHealth="0" expValue="3240" jeValue="3476" qjValue="5948" jePoint="3006" qjPoint="5378" expPoint="1969" userMember="0" PWTName="农场打工" UPImg="/images/H_face_03.gif" />
</data>
请问怎么得到 item 节点中的 UPName 属性的值?
...全文
254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Redsun248 2009-05-13
  • 打赏
  • 举报
回复
aa
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
等待牛人来答.
whatday 2008-04-23
  • 打赏
  • 举报
回复
谢谢以大家上给我的启发 我最终用了 WebBrowser.Document.body.innerText 把XML内容存入一个 String 中 再用相应的字符串函数处理 得到想要的值
silencenet 2008-04-15
  • 打赏
  • 举报
回复


顶下1!
zzyong00 2008-04-15
  • 打赏
  • 举报
回复
XMLDoc.loadXML 不一定非得文件呀,字符串也可以呀
whatday 2008-04-15
  • 打赏
  • 举报
回复
哦 这个知道了 但是怎么把WebBrowser转化为DOMDocument啊 这么没有一个确切的 XML文件地址啊 XMLDoc.loadXML 怎么写啊
zzyong00 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 whatday 的回复:]
安装控件msxml4.msi,在VB中 怎么没有看见Microsoft XML控件啊? 请问安装后VB中引入的控件名字叫什么啊?
[/Quote]
2楼从来也没说用什么控件呀!
是要引用 引用Microsoft XML
whatday 2008-04-15
  • 打赏
  • 举报
回复
能具体说说 问题所对应的代码 怎么写吗?
whatday 2008-04-15
  • 打赏
  • 举报
回复
安装控件msxml4.msi,在VB中 怎么没有看见Microsoft XML控件啊? 请问安装后VB中引入的控件名字叫什么啊?
hongqi162 2008-04-15
  • 打赏
  • 举报
回复
一个解析XML的VB类 

首先,安装控件msxml4.msi,并在VB中引用Microsoft XML。



类ClsXml.cls的程序如下:

Option Explicit



Private document As DOMDocument

Private action As IXMLDOMElement



Public Property Let xml(ByVal xml As String)

Set document = New DOMDocument

document.loadXML xml

'document.Load App.Path + "\from.xml"

Set action = document.selectSingleNode("action")

End Property



Function getNodeAttribute(ByVal attribute_name As String)

Dim element As IXMLDOMElement

Set element = action

If element Is Nothing Then

getNodeAttribute = ""

Else

getNodeAttribute = element.getAttribute(attribute_name)

End If

End Function



Function getNodeValue(ByVal node_name As String)

Dim node As IXMLDOMNode

Set node = action.selectSingleNode(node_name)

If node Is Nothing Then

getNodeValue = ""

Else

getNodeValue = node.Text

End If

End Function



Public Sub createDocument(ByVal name As String)

Set document = New DOMDocument

Set action = document.createElement("action")

action.setAttribute "name", name

document.appendChild action

End Sub



Public Sub appendNode(ByVal node_name As String, ByVal node_value As String)

Dim node As IXMLDOMNode

Set node = action.ownerDocument.createElement(node_name)

node.Text = node_value

action.appendChild node

End Sub



Public Property Get xml() As String

xml = document.xml

'document.save App.Path + "\to.xml"

End Property



调用程序如下:

Option Explicit



Private Sub Form_Load()

Dim obj As New ClsXml

obj.xml = "<action name=""login""><username>a</username><password>1</password></action>"

MsgBox obj.getNodeAttribute("name")

MsgBox obj.getNodeValue("username")

MsgBox obj.getNodeValue("password")

obj.createDocument "logout"

obj.appendNode "username", "a"

obj.appendNode "password", "1"

MsgBox obj.xml

Unload Me

End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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