xml判断是否有子节点

xml判断是否有子节点,第1张

XmlNodeList nodeList = XmlDocSelectSingleNode("a")ChildNodes;//获取<a>节点的所有子节点

if (nodeListCount>0)

{

//含有子结点

}

可以通过元素中的getText方法获取到节点的内容。举例:SAXReader sax = new SAXReader();Document document = saxread(reader);//reader为定义的一个字符串,可以转换为xmlElement root = documentgetRootElement();//获取到根节点元素String str = root getText()//获取到节点的内容用到的是dom4j-161jar,需要引入的包是:import orgdom4jDocument;import orgdom4jDocumentException;import orgdom4jElement;import orgdom4jioSAXReader;备注:如果是多个子节点可以通过地Element xx=root element("code")逗获取到子节点的元素,前提是需要知道子节点的名称。怎么获取xml某个节点下的所有内容

dom4j中,使用Elementattributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点

比如:

Element root = docgetRootElement();

List attrList = rootattributes();

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

//属性的取得

Attribute item = (Attribute)attrListget(i);

Systemoutprintln(itemgetName() + "=" + itemgetValue());

}

List childList = rootelements();

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

//子节点的 *** 作

Element it = (Element) childListget(i);

//对子节点进行其它 *** 作

}

导入dom4j包,和jaxen-11-beta-6jar这两个包,后面这个包是支持xpath的包,

使用xpath实现:查询xml中所有name元素的值

/

               //创建解析器

                SAXReader reader = new SAXReader();

                 //得到document

                    Document document = readerread("src/personxml");

                    //使用selectNodes()方法获取元素

                    List<Node> list = documentselectNodes("//name");

                    //遍历list

                    for(Node node:list){

                         //node是一个name元素

                         //获取name的值

                         String s = nodegetText();

                         Systemoutprintln(s);

                    }

创建解析器

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);

}

}

以上就是关于xml判断是否有子节点全部的内容,包括:xml判断是否有子节点、怎么获取xml某个节点下的所有内容、java中dom4j解析xml文件怎么获取节点属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存