如何获取xml文件中某个节点的值

如何获取xml文件中某个节点的值,第1张

1、用 childNodes 属性,按顺序取

实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。

//pId 待取节点父节点序号

//cId 待取节点序号

function getXmlNodeValue(pId, cId) {

var xmlDoc = new ActiveXObject("MicrosoftXMLDOM");

xmlDocasync = false;

xmlDocload("employeeInfoxml");

var nodes = xmlDocdocumentElementchildNodes[pId]childNodes[cId];return nodeschildNodes[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("MicrosoftXMLDOM");

}catch(e){

try{

//创建FireFox空的XML文档对象

xmlDoc=documentimplementationcreateDocument("","",null);

}catch(e){

alert(emessage);

return "";

}

}

xmlDocasync = false;

try { 

xmlDocload("employeeInfoxml");

}catch(e){

alert(emessage);

return "";

}

var xd=xmlDocdocumentElementchildNodes;

if(xd==null)

return "";

var tempValue;

for(var i=0;i<xdlength;i++){

if(xd[i]childNodes[0]childNodes[0]nodeValue==nodeValue) tempValue=xd[i]childNodes[2]childNodes[0]nodeValue;

}

return tempValue;

}

可以通过元素中的getText方法获取到节点的内容。

举例:

SAXReader sax = new SAXReader();

Document document = saxread(reader);//reader为定义的一个字符串,可以转换为xml

Element root = documentgetRootElement();//获取到根节点元素String str = root getText()//获取到节点的内容

用到的是dom4j-161jar,需要引入的包是:

import orgdom4jDocument;

import orgdom4jDocumentException;

import orgdom4jElement;

import orgdom4jioSAXReader;

备注:如果是多个子节点可以通过地Element xx=root element("code")逗获取到子节点的元素,前提是需要知道子节点的名称。

C# *** 作XML

有以下几种方式:

1:使用XmlDocument相关类库和方法 *** 作xml

2:使用XDocument相关类库和方法 *** 作xml

3:使用XmlReader和XmlWriter相关类库和方法 *** 作xml

获得指定节点的值也需要

分为属性和元素

1:使用XmlDocument

XmlDocument

doc

=

new

XmlDocument();

docLoad("Customer2xml");

//

XmlNodeList

nodeList

=

docGetElementsByTagName("row");

XmlNodeList

nodeList

=

docSelectNodes("/Table/row");

//读取属性+元素

foreach

(XmlNode

item

in

nodeList)

{

customerInfoAppId

=

item

Attributes

["AppID"]Value;

customerInfoCustomerID

=

item["CustomerID"]InnerText;

}

2:使用XDocument

XDocument

xdoc

=

XDocumentLoad("Customer2xml");

var

custs

=

from

customer

in

xdocDescendants("row")

select

new

{//读取属性+元素

Version

=

customerAttribute("Version")Value,

CustomerID

=

customerElement("CustomerID")Value,

};

3:使用XmlReader

XmlReader

reader

=

XmlReaderCreate("Customer2xml",

settings);

//读取属性

while

(readerRead())

{

if

(readerNodeType

==

XmlNodeTypeElement)

{

switch

(readerName)

{

case

"row":

customerInfo

=

new

CustomerInfo();

if

(readerHasAttributes)

{

customerInfoAppId

=

readerGetAttribute("AppID");

customerInfoVersion

=

readerGetAttribute("Version");

}

break;

case

"CustomerID":

customerInfoCustomerID

=

readerReadString();

break;

}

}

用个for循环,首先获取这个相同节点的个数,根据这个个数for循环一个一个吧这个相同节点下的元素取出来放在一个对象里,对象累加

String tagPath = docgetDocumentElement()getTagName() +

利用xslt 取出XML文件中所有 节点名字 节点值 属性名字 属性值 '创建DOM对象 set objDom=serverCreateObject("MicroSoftXMLDom") '取得xml数据 '方法1 取得xml文件的xml数据 objDomload("c:\testxml") '方法2 取得xml数据串的数据 objDomlo

以上就是关于如何获取xml文件中某个节点的值全部的内容,包括:如何获取xml文件中某个节点的值、怎么获取xml某个节点下的所有内容、C# *** 作XML,如何获取指定节点值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9453018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存