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;
}
using SystemXml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xmlLoad(path);
xmlLoad(>
//xmlFile是xml文件,nodeName是节点名,attributeName是节点的属性名,因为节点名是可以重复的,所以用list存放返回值
public List<string> GetAttribute(string xmlFile, string nodeName, string attributeName)
{
List<string> retList = new List<string>();
XmlDocument xx = new XmlDocument();
xxLoad(xmlFile);
XmlNodeList xxList = xxGetElementsByTagName(nodeName);
foreach (XmlNode xxNode in xxList)
{
retListAdd(xxNodeAttributes[attributeName]Value);
}
return retList;
}
下个dom4j包我下面的方法笨了点不知道还有好的不
import javaioFile;
import javautilIterator;
import orgdom4j;
import orgdom4jioSAXReader;
public class ResultXmlTest1 {
public static void main(String args[])
{
SAXReader reader=new SAXReader();
try
{
Document doc=readerread(new File("resultxml"));
Element root=docgetRootElement();
for(Iterator ite=rootelementIterator();itehasNext();)
{
Element ele=(Element)itenext();
for(Iterator iter=eleelementIterator();iterhasNext();)
{
Element elem=(Element)iternext();
//Systemoutprintln(elemgetName());
for(Iterator itera=elemelementIterator();iterahasNext();)
{
Element eleme=(Element)iteranext();
//Systemoutprintln(elemegetName());
for(Iterator iterat=elemeelementIterator();iterathasNext();)
{
Element elemem=(Element)iteratnext();
//Systemoutprintln(elememgetName());
for(Iterator iterato=elememelementIterator();iteratohasNext();)
{
Element elememe=(Element)iteratonext();
//Systemoutprintln(elememegetName());
for(Iterator last=elememeelementIterator();lasthasNext();)
{
Element elemLast=(Element)lastnext();
//Systemoutprintln(elemLastgetName());
for(Iterator at=elemLastattributeIterator();athasNext();)
{
Attribute att=(Attribute)atnext();
if(attgetName()equals("start"))
Systemoutprintln(attgetText());
}
}
}
}
}
}
}
}catch(DocumentException e)
{
eprintStackTrace();
}
}
}
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 = itemAttributes["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;
}
}
import w c dom ;
import javax xml parsers ;
import java io ;
public class Parse{
//Document可以看作是XML在内存中的一个镜像 那么一旦获取这个Document 就意味着可以通过对
//内存的 *** 作来实现对XML的 *** 作 首先第一步获取XML相关的Document
private Document doc=null;
public void init(String xmlFile) throws Exception{
//很明显该类是一个单例 先获取产生DocumentBuilder工厂
//的工厂 在通过这个工厂产生一个DocumentBuilder
//DocumentBuilder就是用来产生Document的
DocumentBuilderFactory dbf=DocumentBuilderFactory newInstance();
DocumentBuilder db=dbf newDocumentBuilder();
//这个Document就是一个XML文件在内存中的镜像
doc=db parse(new File(xmlFile));
}
//该方法负责把XML文件的内容显示出来
public void viewXML(String xmlFile) throws Exception{
this init(xmlFile);
//在xml文件里 只有一个根元素 先把根元素拿出来看看
Element element=doc getDocumentElement();
System out println( 根元素为: +element getTagName());
NodeList nodeList=doc getElementsByTagName( dbstore );
System out println( dbstore节点链的长度: +nodeList getLength());
Node fatherNode=em( );
System out println( 父节点为: +fatherNode getNodeName());
//把父节点的属性拿出来
NamedNodeMap attributes=fatherNode getAttributes();
for(int i= ;i<attributes getLength();i++){
Node attribute=em(i);
System out println( dbstore的属性名为: +attribute getNodeName()+ 相对应的属性值为: +attribute getNodeValue());
}
NodeList childNodes = fatherNode getChildNodes();
System out println(childNodes getLength());
for(int j= ;j<childNodes getLength();j++){
Node childNode=em(j);
//如果这个节点属于Element 再进行取值
if(childNode instanceof Element){
//System out println( 子节点名为: +childNode getNodeName()+ 相对应的值为 +childNode getFirstChild() getNodeValue());
System out println( 子节点名为: +childNode getNodeName()+ 相对应的值为 +childNode getFirstChild() getNodeValue());
}
}
}
public static void main(String[] args)throws Exception{
Parse parse=new Parse();
//我的XML文件
parse viewXML( netct xml );
}
lishixinzhi/Article/program/Java/hx/201311/26710
string
strxml
=
"<root><a
b='1'
c='2'
d='3'>content</a></root>";
XmlDocument
doc
=
new
XmlDocument();
docLoadXml(strxml);
foreach
(XmlAttribute
att
in
docSelectSingleNode("//a")Attributes)
{
//
循环读取每个属性
string
attName
=
attName;
//
得到属性名
string
attVal
=
attValue;
//
得到属性值
}
这个docSelectSingleNode("//a")Attributes得到的就是所有属性的集合。
以上就是关于如何获取xml中某个节点的值全部的内容,包括:如何获取xml中某个节点的值、firefox如何获取xml文档节点下子节点的属性、C# 如何得到一XML文件中指定的节点属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)