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,如何获取指定节点值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)