Foxtable(狐表)用户栏目专家坐堂 → 关于获取xml数据求助


  共有4120人关注过本帖树形打印复制链接

主题:关于获取xml数据求助

帅哥哟,离线,有人找我吗?
yd0731
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
关于获取xml数据求助  发帖心情 Post By:2013/12/30 18:55:00 [只看该作者]

,目前通过下面的语句,能够获取一维数组的数据:

Dim strXML As String = Functions.Execute("getXML","http://10.xxx.x.xxx:8080/cfmSoa_client/accountInfo/getAccountInfoList?")
    Dim xmlDoc As New System.XML.XmlDocument
    xmlDoc.LoadXml(strXML)
    Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("Code")
    e.Form.Controls("Label1").Text = ndList(0).InnerText
    e.Form.Controls("Label2").Text = ndList(1).InnerText

 

对于多维的不知道如何做,比如上面的("Code")变更为("Code","Name"),如何让:

 e.Form.Controls("Label1").Text 显示的是Code的第一个值,

 e.Form.Controls("Label2").Text 显示的是Name的第一个值。

 

请老师指导

[此贴子已经被作者于2013-12-31 14:42:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/30 19:29:00 [只看该作者]

 不明白你的意思,ndlist(0)得到类型是XmxNode,要获取什么都可以啊。

[此贴子已经被作者于2013-12-30 19:29:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2013/12/30 20:30:00 [只看该作者]

不好意思,没有表述清楚,这样的,假设有下面的数据

 

   

  <?xml version="1.0" encoding="UTF-8" ?>

- <root xmlns:ns2="http://us.service.lrd.org.cn">

- <AccountInfo>

  <Code>3821</Code>

  <Name>xx分公司1</Name>

  <periodName>DEC-10</periodName>

  </AccountInfo>

- <AccountInfo>

  <Code>3822</Code>

  <Name> xx分公司2</Name>

  <periodName>DEC-10</periodName>

  </AccountInfo>

- <AccountInfo>

  <Code>3823</Code>

  <Name> xx分公司3</Name>

  <periodName>DEC-10</periodName>

  </AccountInfo>

  </root>

我需要将上面得到的数据用数组取出来,得到下面的结果

e.Form.Controls("Label1").Text='3821'         e.Form.Controls("Label2").Text='xx分公司1'        e.Form.Controls("Label3").Text='DEC-10'
 e.Form.Controls("Label4").Text='3822'        e.Form.Controls("Label5").Text='xx分公司2'        e.Form.Controls("Label6").Text='DEC-10'
 e.Form.Controls("Label7").Text='3823'        e.Form.Controls("Label8").Text='xx分公司3'        e.Form.Controls("Label9").Text='DEC-10'

 

那么这后面的语句该如何写呢:

Dim strXML As String = Functions.Execute("getXML","http://10.xxx.x.xxx:8080/cfmSoa_client/accountInfo/getAccountInfoList?")
    Dim xmlDoc As New System.XML.XmlDocument
    xmlDoc.LoadXml(strXML)

[此贴子已经被作者于2013-12-31 14:43:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/30 20:33:00 [只看该作者]

 你应该先去获取 AccountInfo 节点,然后查找它的子节点,看2楼的方法。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/30 20:37:00 [只看该作者]

 又或者是,你获取code一次,再获取name一次,保存在两个变量里,分别获取。

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2013/12/30 20:42:00 [只看该作者]

以下是引用有点甜在2013-12-30 20:37:00的发言:
 又或者是,你获取code一次,再获取name一次,保存在两个变量里,分别获取。

这个方法我会,就是

Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("Code")
然后,再做一次

Dim ndList1 As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("name")

 

就可以取到想要的数据,原来是想是不是还有简单的方法,呵呵,想偷懒

[此贴子已经被作者于2013-12-30 20:44:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2013/12/30 20:59:00 [只看该作者]

继续请教甜老师。如何知道Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("Code") 取到多少个数据呢,比如上面的3821,3822,3823三个数据,如何获取其有多少个数据呢?

除了用下面的方法,还有其他办法吗?

Dim m As Integer
For Each Nd As System.XML.XmlNode In ndList
m=m+1
Next
output.Show(m)

[此贴子已经被作者于2013-12-30 21:04:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/30 21:09:00 [只看该作者]

 你看看这个对象的属性和方法,你就知道怎么写了


 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2013/12/30 21:39:00 [只看该作者]

呵呵,    e.Form.Controls("Label2").Text = ndList1.count  得到想要的结果,谢谢有点甜老师!

 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
  发帖心情 Post By:2014/3/2 13:11:00 [只看该作者]

 咱就不能分享一下成果吗

 回到顶部