乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 高分悬赏 VB 根据节点名字获取XML文件中的对应节点的属性...

高分悬赏 VB 根据节点名字获取XML文件中的对应节点的属性...

作者:乔山办公网日期:

返回目录:excel表格制作


1、用 childNodes 属性,按顺序取
  实现过程:首先创建一个 xml 对象e799bee5baa6e58685e5aeb9338,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。
  //pId 待取节点父节点序号
  //cId 待取节点序号
function getXmlNodeValue(pId, cId) {    
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");    
xmlDoc.async = false;
  xmlDoc.load("employeeInfo.xml");    
  var nodes = xmlDoc.documentElement.childNodes[pId].childNodes[cId];    return nodes.childNodes[0].text;  
}
调用方法:alert(getXmlNodeValue(1, 2));

2、用 for 循环来取

实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。
//nodeValue 待取节点的所属节点值
function getXmlNodeValueFor(nodeValue){
var xmlDoc; 
try {   
//创建一个 ie 支持的 XML 文档对象   
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");  
}catch(e){    
try{      
//创建FireFox空的XML文档对象      
xmlDoc=document.implementation.createDocument("","",null);
    }catch(e){      
     alert(e.message);      
     return "";    
    }  
  }
  xmlDoc.async = false;
  try {   
   xmlDoc.load("employeeInfo.xml");  
  }catch(e){    
   alert(e.message);    
   return "";  
  }
  var xd=xmlDoc.documentElement.childNodes;  
  if(xd==null)
   return "";  
   var tempValue;
  for(var i=0;i<xd.length;i++){    
   if(xd[i].childNodes[0].childNodes[0].nodeValue==nodeValue)       tempValue=xd[i].childNodes[2].childNodes[0].nodeValue;  
  }  
  return tempValue;
}

xml="<note><to>George</to><from>John</from><heading>Reminder</heading ><body remark=""szqlay"">Don't forget the meeting!</body></note>"

Dim xmldocSet xmldoc = WScript.CreateObject("msxml2.domdocument")
xmldoc.async=false
xmldoc.loadxml(xml)
dim cnode
Set cnode=xmldoc.getElementsByTagName("body").item(0)
MsgBox cnode.text 
MsgBox cnode.attributes.item(0).text


说实在,用数字作标签估计行不通,我试了下不能。这是用vbs脚本,或许放到vb中也行。你可自己把body改成数字试一下。


C#操作XML 有以下几种方式:

  1. 使用XmlDocument相关类库和方法操作xml。

  2. 使用XDocument相关类库和方法操作xml。

  3. 使用XmlReader和XmlWriter相关类库和方法操作xml。

  4. 获得指定节点的值也需要分为属性和元素zhidao



<%
'ASP中的VBScript并不是VB,不过应该区别不大

‘定义变量
Dim oXml
Dim arrText, arrValue, sFGF
sFGF = "$$"
’创建XMLDOM对象
Set oXml = Server.CreateObject("Microsoft.XMLDOM")
‘设置异步读取文件
oXml.async=False
’读取文件
oXml.load Server.MapPath("aul.xml")
‘设置变量 节点类型的
Dim oNodes, oNode
’得到节点集合放入oNodes变量中
‘ SelectNodes()方法接受一个XPath参数可以搜索到你想要的节点集合
‘这里的 XPath是 "//screen/list/item"
Set oNodes = oXml.documentElement.SelectNodes("//screen/list/item")
‘迭代
For Each oNode In oNodes
’字符串拼接,因为VBScript Array没push()方法
arrText = arrText & oNode.getAttributeNode("labelText").nodeValue & sFGF
arrValue = arrValue & oNode.getAttributeNode("value").nodeValue & sFGF

Next
' 去掉最后的分隔符后再用Split()将字符串转换为数组得到结果
If arrText <> "" Then
arrText = Mid(arrText, 1, Len(arrText)-Len(sFGF))
arrText = Split(arrText, sFGF)
End If
If arrValue <> "" Then
arrValue = Mid(arrValue, 1, Len(arrValue)-Len(sFGF))
arrValue = Split(arrValue, sFGF)
End if

Set oNodes = Nothing
Set oXml = Nothing

' arrText, arrValue 就是结果了
‘ 输出一下测试
Response.Write arrValue(0)
' 上面的是e79fa5e98193e78988e69d83338ASP服务器端读取xml的代码。给你参考
%>

相关阅读

  • 数值策划使用<em>EXCEL</em>的问题

  • 乔山办公网excel表格制作
  • 我最近在做毕业论知文,就要运用这两种软件,MATLAB很强大,可以实现灵活的编程,例如他可以解大型方程组,主要问题是运用到你所说的数学建模方面就很方便道了,用EXCEL建模也可以
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网