美文网首页
java解析XML格式字符串

java解析XML格式字符串

作者: 姜小码 | 来源:发表于2016-03-09 15:25 被阅读2635次

一个字符串 <message>HELLO!</message>,怎样解析得到HELLO!?
正则表达式可以轻松解决,但是节点多了就搞不定了。

1、使用JDOM

String xml = "<message>HELLO!</message>";
org.jdom.input.SAXBuilder saxBuilder = new SAXBuilder();
try {
    org.jdom.Document doc = saxBuilder.build(new StringReader(xml));
    String message = doc.getRootElement().getText();
    System.out.println(message);
} catch (JDOMException e) {
    // handle JDOMException
} catch (IOException e) {
    // handle IOException
}

2、使用Xerces DOMParser

String xml = "<message>HELLO!</message>";
DOMParser parser = new DOMParser();
try {
    parser.parse(new InputSource(new java.io.StringReader(xml)));
    Document doc = parser.getDocument();
    String message = doc.getDocumentElement().getTextContent();
    System.out.println(message);
} catch (SAXException e) {
    // handle SAXException 
} catch (IOException e) {
    // handle IOException 
}

3、使用 JAXP

String xml = "<message>HELLO!</message>";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
    db = dbf.newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(xml));
    try {
        Document doc = db.parse(is);
        String message = doc.getDocumentElement().getTextContent();
        System.out.println(message);
    } catch (SAXException e) {
        // handle SAXException
    } catch (IOException e) {
        // handle IOException
    }
} catch (ParserConfigurationException e1) {
    // handle ParserConfigurationException
}

4、使用JAXB

包
import java.io.StringReader;
import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource;


String xmlString = "<message>HELLO!</message> ";
JAXBContext jc = JAXBContext.newInstance(String.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
StreamSource xmlSource = new StreamSource(new StringReader(xmlString));
JAXBElement<String> je = unmarshaller.unmarshal(xmlSource, String.class);
System.out.println(je.getValue());

5、使用jdk自带功能

String msg = "<message>HELLO!</message>";
DocumentBuilder newDocumentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document parse = newDocumentBuilder.parse(new ByteArrayInputStream(msg.getBytes()));
System.out.println(parse.getFirstChild().getTextContent());

相关文章

  • java解析XML格式字符串

    一个字符串 HELLO!,怎样解析得到HELLO!?正则表达式可以轻松解决,...

  • Jaxp解析xml

    一.解析xml1.xml格式如下: 2.java解析代码如下 3.运行结果 二.编辑xml1.增加标签

  • ajax中xml和json

    一、DOM解析XML字符串 创建DOM解析XML的解析器,解析器解析XML字符串IE浏览器var parser =...

  • 2020-07-16 c++ xml 解析

    对xml格式的字符串解析 源码:https://github.com/leethomason/tinyxml2.g...

  • 05、网络解析

    解析:从事先规定好的格式中提取数据iOS开发常见的解析:XML解析,JSON解析 XML解析 XMl事例: XML...

  • 2018-11-21

    json:(字符串) 数据传输格式 XML: 可扩展笔记语言 json 对象: json字符串解析出来的对象。或者...

  • Fastjson反序列化漏洞利用

    前言 Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Be...

  • Java 利用json-lib.jar解析xml文件

    java中xml文件的解析方法可以说是烂大街了。最近一个项目要求解析xml文件,并将其内容转化成json字符串。(...

  • 21

    json:(字符串)数据传输格式XML:可扩展笔记语言json 对象:json字符串解析出来的对象。或者就是个对象...

  • 解析数据

    1.XML格式数据解析  XML格式数据:         1     Google Maps

网友评论

      本文标题:java解析XML格式字符串

      本文链接:https://www.haomeiwen.com/subject/ypzzkttx.html