「java获取xml节点」java获取xml节点名

博主:adminadmin 2023-01-01 15:00:06 537

今天给各位分享java获取xml节点的知识,其中也会对java获取xml节点名进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java语句如何获取XML文件的节点值

你说的是获取指定id下面的节点的属性值吧!

程序如下,其中equal(“”)双引号中的值为节点的属性值

属性值获取如下:

package saxbuilder.ibm.xmlproperty;

import java.io.File;

import java.io.IOException;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

public class XmlProperty {

public Element element;

String path = "D:\\xml\\a.xml";

public void getElementProperty() {

File file = new File(path);

try {

SAXReader reader = new SAXReader();

Document dc = reader.read(file);

Element e = dc.getRootElement();

// 节点值

Element child = (Element) e.getQName("COMMAND");

System.out.println(child.toString());

// 一级节点

for (Iterator iterator = e.elementIterator(); iterator.hasNext();) {

Element el = (Element) iterator.next();

// 一级节点的属性信息

for (Iterator iterator2 = el.attributeIterator(); iterator2

.hasNext();) {

Attribute attribute = (Attribute) iterator2.next();

if(attribute.getName().equals("bodyCategory")){

System.out.println("attribute.getName()一级节点的属性信息+"+attribute.getName()+attribute.getValue());

}else{

System.out.println("attribute.getName()一级节点的属性信息+"+attribute.getName()+attribute.getValue());

}

// 二级节点

for (Iterator iterator3 = el.elementIterator(); iterator3

.hasNext();) {

Element ele = (Element) iterator3.next();

// 二级节点的属性信息

for (Iterator iterator4 = ele.attributeIterator(); iterator4

.hasNext();) {

Attribute attribute1 = (Attribute) iterator4.next();

if(attribute1.getName().equals("cmdType")){

System.out.println("attribute1.getName()二级节点的属性信息+"+attribute1.getName()+"+"+attribute1.getValue());

}else{

System.out.println("attribute1.getName()二级节点的属性信息+"+attribute1.getName()+"+"+attribute1.getValue());

}

}

}

}

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

java怎么通过xml节点的属性获取这个节点的值?

创建解析器

SAXReader saxreader = new SAXReader();

读取文档

Document doc = saxreader.read(new File("url"));

获取根

Element root = doc.getRootElement();

获取子节点

ListElement list = root.elements();

System.out.println(e.elementText("name"));

System.out.println(e.element("score").attributeValue("java"));

Reader reader = new InputStreamReader(con

.getInputStream());

SAXReader sax = new SAXReader();

// sax.setEncoding("GBK");

Document document = sax.read(reader);

document.setXMLEncoding("GBK");

Element root = document.getRootElement();

// Document doc = reader.read(read);

// Element root = doc.getRootElement();

readNode(root, "");

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

if (root == null) return;

// 获取属性

ListAttribute attrs = root.attributes();

if (attrs != null attrs.size() 0) {

System.err.print(prefix);

for (Attribute attr : attrs) {

System.err.print(attr.getValue() + " ");

}

System.err.println();

}

// 获取他的子节点

ListElement childNodes = root.elements();

prefix += "\t";

for (Element e : childNodes) {

//输出内容

System.err.println(e.getName()+":"+e.getData());

readNode(e, prefix);

}

}

java获取xml节点属性

/**

 * xml文件解析

 * @author young

 *

 */

import java.io.*;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class XmlExam {

public static void main(String args[]) {

Element element = null;

// 可以使用绝对路劲

File f = new File("xml1.xml");

// documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)

DocumentBuilder db = null;

DocumentBuilderFactory dbf = null;

try {

// 返回documentBuilderFactory对象

dbf = DocumentBuilderFactory.newInstance();

// 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象

db = dbf.newDocumentBuilder();

// 得到一个DOM并返回给document对象

Document dt = db.parse(f);

// 得到一个elment根元素

element = dt.getDocumentElement();

// 获得根节点

System.out.println("根元素:" + element.getNodeName());

// 获得根元素下的子节点

NodeList childNodes = element.getChildNodes();

// 遍历这些子节点

for (int i = 0; i  childNodes.getLength(); i++) {

// 获得每个对应位置i的结点

Node node1 = childNodes.item(i);

if ("txtbook".equals(node1.getNodeName())) {

System.out.println("\r\n找到一个子节点: "

+ node1.getNodeName() + ". ");

// 获得txtbook下的节点

NodeList nodeDetail = node1.getChildNodes();

// 遍历txtbook下的节点

for (int j = 0; j  nodeDetail.getLength(); j++) {

// 获得wuxialist元素每一个节点

Node detail = nodeDetail.item(j);

if ("name".equals(detail.getNodeName())) // 输出code

System.out

.println("name= " + detail.getTextContent());

else if ("author".equals(detail.getNodeName())) // 输出pass

System.out

.println("author= " + detail.getTextContent());

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

这就是用java来解析xml文件。  要在java代码中导入xml解析的jar包。

4个jar包为:commons-beanutils.jar

commons-collections.jar

commons-digester.jar

commons-logging.jar

dom4j-1.6.1.jar

输出结果为:

java怎么获得xml节点中的值

//1. 创建解析器

SAXReader saxreader = new SAXReader();

//2. 读取文档

Document doc = saxreader.read(new File("url"));

//3. 获取根

Element root = doc.getRootElement();

//4. 获取子节点

ListElement list = root.elements();

for(Element e : list){

System.out.println(e.elementText("name"));

System.out.println(e.element("score").attributeValue("java"));

}

java如何读取xml节点元素值?

java读取xml节点元素,主要使用java提供的解析xml的工具类SAXParserFactory,如下代码:

package xml.xmlreader;

import java.io.File;

import java.net.URL;

import java.util.Properties;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

public class CFGParser {//解析xml文件的工具类

    private Properties props;

    public Properties getProps() {

        return props;

    }

    public void setProps(Properties props) {

        this.props = props;

    }

    public void parse(String filename) throws Exception

    {

        CFGHandler handler = new CFGHandler();

        SAXParserFactory factory = SAXParserFactory.newInstance();

        factory.setNamespaceAware(false);

        factory.setValidating(false);

        SAXParser parser = factory.newSAXParser();

        URL confURL = super.getClass().getClassLoader().getResource(filename);

        if (confURL == null) {

            System.out.println("Can't find configration file.");

            return;

        }

        try

        {

            parser.parse(confURL.toString(), handler);

            this.props = handler.getProps();

        }

        finally {

            factory = null;

            parser = null;

            handler = null;

        }

    }

    public void parseFile(String filename)

    throws Exception

    {

        CFGHandler handler = new CFGHandler();

        SAXParserFactory factory = SAXParserFactory.newInstance();

        factory.setNamespaceAware(false);

        factory.setValidating(false);

        SAXParser parser = factory.newSAXParser();

        File f = new File(filename);

        if ((f == null) || (!f.exists()))

            return;

        try

        {

            parser.parse(f, handler);

            this.props = handler.getProps();

        }

        finally {

            factory = null;

            parser = null;

            handler = null;

        }

    }

}

package xml.xmlreader;

import java.util.Properties;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.helpers.DefaultHandler;

public class CFGHandler extends DefaultHandler

{

  private Properties props;

  private String currentSet;

  private String currentName;

  private StringBuffer currentValue = new StringBuffer();

  public CFGHandler()

  {

    this.props = new Properties();

  }

  public Properties getProps() {

    return this.props;

  }

  public void startElement(String uri, String localName, String qName, Attributes attributes)

    throws SAXException

  {

    this.currentValue.delete(0, this.currentValue.length());

    this.currentName = qName;

  }

  public void characters(char[] ch, int start, int length) throws SAXException

  {

    this.currentValue.append(ch, start, length);

  }

  public void endElement(String uri, String localName, String qName)

    throws SAXException

  {

    this.props.put(qName.toLowerCase(), this.currentValue.toString().trim());

  }

}

xml文件

?xml version="1.0" encoding="UTF-8"?

xml-body

        refresh_userlist desc="用户列表刷新间隔时间(秒)"6/refresh_userlist

        refresh_message desc="短消息刷新间隔时间(秒)"10/refresh_message

        morningbegin desc="上午上班时间"23:00/morningbegin

        morningend desc="上午下班时间"12:00/morningend

        afternoonbegin desc="下午上班时间"18:00/afternoonbegin

/xml-body

jsp获取各个节点的值:

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%

html

    jsp:useBean id="cfgp" scope="page" class="xml.xmlreader.CFGParser"/jsp:useBean

    body

        %

   cfgp.parse("kaoqin.xml");

   Properties pro = cfgp.getProps();

   String stTime = pro.getProperty("morningbegin");

   String edTime = pro.getProperty("morningend");

    String afternoonbegin = pro.getProperty("afternoonbegin");

   

   out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);

   System.out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);

    %

    /body

/html

java怎么取出xml中指定节点中的内容

可以通过元素中的getText方法获取到节点的内容。

举例:

SAXReader sax = new SAXReader();

Document document = sax.read(reader);//reader为定义的一个字符串,可以转换为xml

Element root = document.getRootElement();//获取到根节点元素String str = root .getText()//获取到节点的内容

用到的是dom4j-1.6.1.jar,需要引入的包是:

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

备注:如果是多个子节点可以通过”Element xx=root .element("code")“获取到子节点的元素,前提是需要知道子节点的名称。

关于java获取xml节点和java获取xml节点名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。