方法一:
root = DocumentHelperparseText(datas)getRootElement();
int num=-1;
for ( Iterator iter = rootelementIterator(); iterhasNext(); ) {
Element element = (Element) iternext();
num++;
//遍历book结点的所有孩子节点(即title),并进行处理
for ( Iterator iterInner = elementelementIterator(); iterInnerhasNext(); ) {
Element elementInner = (Element) iterInnernext();
String a=elementInnergetName();//节点的名称,如title
String b=elementInnergetText();//节点的内容,如title标签里的内容
}
方法二
books = DocumentHelperparseText(datas)getRootElement();
Element book = null;
Element title = null;
List list = books elements("book");
for (int i = 0; i < listsize(); i++) {
book = (Element) listget(i);
List listfile = book elements("title ");
string a=((Element) listfileget(0))getTextTrim();//Dom4j Tutorials
string b=((Element) listfileget(1))getTextTrim();//Lucene Studing
}
这个很简单,上代码吧
try {
String strXML = "你的XML字符串";
Document document = DocumentHelperparseText(strXML);
Node node = documentselectSingleNode('examples/example/examplemain/a');
Systemoutprintln(nodegetText());
node = documentselectSingleNode('examples/example/examplemain/b');
Systemoutprintln(nodegetText());
node = documentselectSingleNode('examples/example/examplemain/c');
Systemoutprintln(nodegetText());
} catch (DocumentException ex) {
exprintStackTrace();
}
你的里面就没有属性我自己在下面三个节点加了点,xml文件要放在项目的根目录下
<result has="1">0</result>
<name has="2">姓名</name>
<name has="3">个人编号</name>
下面这是代码:记得引入dom4j包
package thread;
import javaioFile;
import javautilIterator;
import orgdom4jAttribute;
import orgdom4jDocument;
import orgdom4jDocumentException;
import orgdom4jElement;
import orgdom4jioSAXReader;
public class msgXml {
public static void main(String args[])
{
SAXReader read=new SAXReader();
File file=new File("msgxml");
try
{
Document doc=readread(file);
Element root=docgetRootElement();
Systemoutprintln("下面是name的值:");
//先得到body节点
for(Iterator it=rootelementIterator("body");ithasNext();)
{
Element itt=(Element)itnext();
//再得到body下的name节点,再得到值
for(Iterator text=ittelementIterator("name");texthasNext();)
{
Element textt=(Element)textnext();
Systemoutprintln(texttgetText());
}
Systemoutprintln("属性都为has的节点:");
for(Iterator te=ittelementIterator();tehasNext();)
{
Element tex=(Element)tenext();
for(Iterator atn=texattributeIterator();atnhasNext();)
{
Attribute attn=(Attribute)atnnext();
//属性相同的节点名
if(attngetName()equals("has"))
{
Systemoutprintln(texgetName());
}
}
}
}
}catch(DocumentException e)
{
eprintStackTrace();
}
}
}
创建解析器
SAXReader saxreader = new SAXReader();
读取文档
Document doc = saxreaderread(new File("url"));
获取根
Element root = docgetRootElement();
获取子节点
List<Element> list = rootelements();
Systemoutprintln(eelementText("name"));
Systemoutprintln(eelement("score")attributeValue("java"));
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<Attribute> attrs = rootattributes();
if (attrs != null && attrssize() > 0) {
Systemerrprint(prefix);
for (Attribute attr : attrs) {
Systemerrprint(attrgetValue() + " ");
}
Systemerrprintln();
}
// 获取他的子节点
List<Element> childNodes = rootelements();
prefix += "\t";
for (Element e : childNodes) {
//输出内容
Systemerrprintln(egetName()+":"+egetData());
readNode(e, prefix);
}
}
可以通过元素中的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")“获取到子节点的元素,前提是需要知道子节点的名称。
以上就是关于用dom4j解析XML如何找到一个节点的子结点全部的内容,包括:用dom4j解析XML如何找到一个节点的子结点、Axis中如何通过dom4j获取xml文件中节点的值(不是属性,是节点中间的字符串)、dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)