「javaxml值」javaxxml

博主:adminadmin 2022-12-17 08:27:09 73

本篇文章给大家谈谈javaxml值,以及javaxxml对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java如何从xml文件中读取一个值

java读取xml信息常用技术有dom解析和dom4J解析

dom4j是最常用的java解析xml技术,在使用时需要下载dom4j.jar

具体解析方法可以参考一下内容

xml结构

books 

   book id="001" 

      titleHarry Potter/title 

      authorJ K. Rowling/author 

   /book 

   book id="002" 

      titleLearning XML/title 

      authorErik T. Ray/author 

   /book 

/books

解析为List集合

import java.io.File;

import java.util.List;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class Demo {

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

  SAXReader reader = new SAXReader();

  File file = new File("books.xml");

  Document document = reader.read(file);

  Element root = document.getRootElement();

  ListElement childElements = root.elements();

  for (Element child : childElements) {

   //未知属性名情况下

   /*ListAttribute attributeList = child.attributes();

   for (Attribute attr : attributeList) {

    System.out.println(attr.getName() + ": " + attr.getValue());

   }*/

   //已知属性名情况下

   System.out.println("id: " + child.attributeValue("id"));

   //未知子元素名情况下

   /*ListElement elementList = child.elements();

   for (Element ele : elementList) {

    System.out.println(ele.getName() + ": " + ele.getText());

   }

   System.out.println();*/

   //已知子元素名的情况下

   System.out.println("title" + child.elementText("title"));

   System.out.println("author" + child.elementText("author"));

   //这行是为了格式化美观而存在

   System.out.println();

  }

 }

}

java中怎么取xml节点值

不难啊,你在appSettings结点上取所有children,然后一个一个遍历,找出所有attribute key的值满足你要求的child结点就可以了。虽然这个办法是傻了一点。

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的值

import java.io.File;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader; public class XmlDocument{

//文件对象

private static File xmlf;

//SAX对象

private SAXReader reader;

//Document对象

private Document doc;

/**

* 构造函数 实例化文件,SAX跟Document对象

* @param f 指定文件路径

*/

public XmlDocument(String f) {

this.xmlf = new File(f);

reader = new SAXReader();

try {

doc = reader.read(xmlf);

} catch (DocumentException e) {

System.out.println(e.getMessage());

}

}

/**

* 根据表名,列名 属性名 得到某一个值

* @param tabName 表名

* @param colName 列名

* @param valName 属性名

* @return returns 返回的属性值 String类型

* @author JinQiao

*/

public String getTableColsVal(String tabName,String colName,String valName){

String returns="";//存返回值用的,

//得到根节点

Element e_plan = (Element)doc.selectSingleNode("node");

//根据传来的表名跟列名 拼接节点路径 找到对应的节点

ListElement eplist = (ListElement) e_plan.selectNodes("table[@name='"+tabName.toUpperCase()+"']/column[@name='"+colName.toUpperCase()+"']/column_type");

//循环得到的节点的所有子节点

for (Element ep : eplist) {

//根据传来的属性名称 找到该属性

try{

Element id = (Element) ep.selectSingleNode(valName);

//得到该属性的值

returns = id.getText();

//如果未找到会报空指针异常 返回""值

}catch(NullPointerException e){

return "";

}

}

//返回

return returns;

}

/**

* 根据表名判断此表在XML是否存在

* @param tabName 表名

* @return Boolean

* @author JinQiao

* @date 2010/07/27

*/

public Boolean isNull(String tabName){

//得到根节点

Element e_plan = (Element)doc.selectSingleNode("node");

//根据传来的表名跟列名 拼接节点路径 找到对应的节点

ListElement eplist = (ListElement) e_plan.selectNodes("table[@name='"+tabName.toUpperCase()+"']");

//判断XML中有没有这个表, 有的话返回true 反之false,

if (eplist.size()0)

return true;

else

return false;

} public static void main(String args []){

XmlDocument xd = new XmlDocument("C:\\Users\\JinQiao\\workspace\\ReqmanServer\\WebRoot\\WEB-INF\\src\\com\\reqman\\codemanage\\service\\tableConfig.xml");

System.out.println(xd.getTableColsVal("DM_YWLC", "YWLC_MC", "name"));

}} ---------------------------------------------------------------------------------------- 以下是我的XML部分截取 你试一下按你自己的要求去改类吧,node

table name="DM_DZBD"

column name="DZBD_DM"

column_type

namestring/name

/column_type

/column

column name="DZBD_MC"

column_type

namestring/name

/column_type

/column

column name="WJLJ_ZH"

column_type

namehref/name

typedzbd/type

/column_type

/column

column name="WJLJ"

column_type

namenull/name

/column_type

/column

column name="BDLYLX_ID"

column_type

nameradio/name

radio_tableDM_BDLYLX/radio_table

radio_colID,BDLYLX_MC/radio_col

/column_type

/column

column name="BDLYSM"

column_type

namestrings/name

/column_type

/column

column name="YXBZ"

column_type

nameradio/name

radio_tableDM_YN/radio_table

radio_colYN_DM,YN_MC/radio_col

/column_type

/column

/table/node

java 怎么读取xml里面的值

java读取xml信息常用技术有dom解析和dom4J解析

dom4j是最常用的java解析xml技术,在使用时需要下载dom4j.jar

具体解析方法可以参考一下内容

xml结构

books

book id="001"

titleHarry Potter/title

authorJ K. Rowling/author

/book

book id="002"

titleLearning XML/title

authorErik T. Ray/author

/book

/books

JAVA解析xml得到节点的值

import java.io.File;

import java.util.Iterator;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class ParseXml {

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

SAXReader reader = new SAXReader();

Document doc = reader.read(new File("d:/test.xml"));

Element root = doc.getRootElement();

Element record = root.element("Record");

IteratorElement it = record.elementIterator("Field");

while (it.hasNext()) {

Element element = it.next();

Element name = element.element("Name");

System.out.println(name.getText());

Element value = element.element("Value");

ParseXml.parseValue(value);

}

}

public static void parseValue(Element value) {

IteratorElement it = value.elementIterator();

if (it.hasNext()) {

while (it.hasNext()) {

Element element = it.next();

Element innerField = element.element("Field");

Element innerName = innerField.element("Name");

System.out.println(innerName.getText());

Element innerValue = innerField.element("Value");

parseValue(innerValue);

}

} else {

System.out.println(value.getText());

}

}

}

javaxml值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaxxml、javaxml值的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。