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


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

主题:关于获取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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yd0731
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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  得到想要的结果,谢谢有点甜老师!

 回到顶部