怎么获取xml某个节点下的所有内容

怎么获取xml某个节点下的所有内容,第1张

可以通过元素中的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")逗获取到子节点的元素,前提是需要知道子节点的名称。

XmlDocument xml = new XmlDocument();

xmlLoad("RSSChannelXML");//加载文件

XmlNode xmlNode = xmlDocumentElement;//获取根节点

foreach (XmlNode node in xmlNodeChildNodes)//获取第一个子节点

{

TreeNode newNode = treeView1NodesAdd(nodeAttributes[0]ValueToString());//获取节点第1个属性的值

foreach (XmlNode node1 in nodeChildNodes)

{

newNodeNodesAdd(node1Attributes[0]ValueToString());//获取子子节点第1个属性的值

newNodeTag = node1InnerText;

}

}

XmlDocument先把xml load进来。。

//取所有root节点子节点

XmlNodeList nodeList = docSelectNodes("/root");

for each(XmlNode node in nodeList) //遍历每一个子节点

{

//分别读取子节点的需要节点值,自己存吧,反正这么取的

string elementValue=nodeSelectSingleNode("//elementValue")InnerTextToString();

string elementScore=nodeSelectSingleNode("//elementScore")InnerTextToString();

}

Reader reader = new InputStreamReader(con

getInputStream());

SAXReader sax = new SAXReader();

// saxsetEncoding("GBK");

Document document = saxread(reader);

documentsetXMLEncoding("GBK");

Element root = documentgetRootElement();

// Document doc = readerread(read);

// Element root = docgetRootElement();

readNode(root, "");

public static void readNode(Element root, String prefix) {

if (root == null) return;

// 获取属性

List attrs = rootattributes();

if (attrs != null && attrssize() > 0) {

Systemerrprint(prefix);

for (Attribute attr : attrs) {

Systemerrprint(attrgetValue() + " ");

}

Systemerrprintln();

}

// 获取他的子节点

List childNodes = rootelements();

prefix += "\t";

for (Element e : childNodes) {

//输出内容

Systemerrprintln(egetName()+":"+egetData());

readNode(e, prefix);

}

}

XmlNodeList _xnList = _xmlDocSelectNodes("//DataList//Product//From[@id="+_id+"] and @users=‘张三’ and

");

public class StudentTest {

public static void main(String[] args) throws Exception {

DocumentBuilderFactory factory = DocumentBuilderFactorynewInstance();

DocumentBuilder db = factorynewDocumentBuilder();

Document document = dbparse(new File("studentxml"));

NodeList node = documentgetElementsByTagName("学生");

for(int i=0;i<nodegetLength();i++){

Element element = (Element)nodeitem(i);

// 获取属性学号

String content = elementgetAttribute("学号");

Systemoutprintln("学号:" + content);

content = elementgetElementsByTagName("姓名")item(0)getFirstChild()getNodeValue();

Systemoutprintln("姓名:" + content);

content = elementgetElementsByTagName("性别")item(0)getFirstChild()getNodeValue();

Systemoutprintln("性别:" + content);

content = elementgetElementsByTagName("年龄")item(0)getFirstChild()getNodeValue();

Systemoutprintln("年龄:" + content);

Systemoutprintln();

}

}

}// 被解析的XML文件内容(studentxml)

<xml version="10" encoding="UTF-8">

<学生名册>

<学生 学号="0001214">

<姓名>张燕</姓名>

<性别>女</性别>

<年龄>22</年龄>

</学生>

<学生 学号="0001239">

<姓名>李继成</姓名>

<性别>男</性别>

<年龄>22</年龄>

</学生>

<学生 学号="0001275">

<姓名>华伟</姓名>

<性别>男</性别>

<年龄>22</年龄>

</学生>

</学生名册>

自己慢慢看吧;

// 获取属性学号

String content = elementgetAttribute("学号");

Systemoutprintln("学号:" + content);

using SystemXml;

//初始化一个xml实例

XmlDocument xml=new XmlDocument();

//导入指定xml文件

xmlLoad(path);

xmlLoad(>

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;

}

}

以上就是关于怎么获取xml某个节点下的所有内容全部的内容,包括:怎么获取xml某个节点下的所有内容、如何用XMLDocument组件获得XML文件里子节点的全部的内容(delphi)、.net读取XML子节点的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存