java解析xml字符串-jdom

本文展示了一个使用Java的JDON库解析XML字符串的简单示例。代码中首先定义了一个包含XML数据的字符串,然后利用JDON的SAXBuilder创建了一个Document对象。随后,文章演示了如何获取XML文档的根元素及子元素,并打印出来。
package xml;

import java.io.IOException;
import java.io.StringReader;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class ReadXmlJdom {
public static void main(String[] args){
String xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><rsp><user><buyer_credit><level>1</level><score>9</score><total_num>9</total_num><good_num>9</good_num></buyer_credit><nick><![CDATA[honda418]]></nick><sex><![CDATA[m]]></sex></user></rsp>";

StringReader read = new StringReader(xmlStr);
//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
//创建一个新的SAXBuilder
SAXBuilder sb = new SAXBuilder();
try {
//通过输入源构造一个Document
Document doc = sb.build(source);
//取的根元素
Element root = doc.getRootElement();
System.out.println(root.getName());

List child = root.getChildren();
Element e = null;
for (int i = 0; i < child.size(); i++){
e = (Element)child.get(i);
System.out.println(e.getName());
}
}catch(JDOMException e){
e.printStackTrace();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
Java解析 XML 字符串是一种常见的操作,尤其在处理数据交换、配置文件或 Web 服务时。可以通过多种方式实现 XML 字符串解析,包括使用 `DocumentBuilder`、`SAXReader` 或 `JDOM` 等类库。 ### 使用 `DocumentBuilder` 解析 XML 字符串 Java 提供了 `DocumentBuilderFactory` 和 `DocumentBuilder` 类,可以用于解析 XML 字符串并生成 `Document` 对象。以下是一个示例: ```java import org.w3c.dom.Document; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.ByteArrayInputStream; public class XMLParser { public static void main(String[] args) throws Exception { String xmlString = "<root><element>Hello, XML</element></root>"; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new ByteArrayInputStream(xmlString.getBytes())); document.getDocumentElement().normalize(); System.out.println("Root element: " + document.getDocumentElement().getNodeName()); } } ``` ### 使用 `SAXReader` 解析 XML 字符串 `SAXReader` 是 `dom4j` 库中的一个类,可以用于解析 XML 字符串并操作 DOM 树。以下是使用 `SAXReader` 的示例: ```java import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.io.ByteArrayInputStream; public class SAXXMLParser { public static void main(String[] args) throws Exception { String xmlString = "<root><element>Hello, XML</element></root>"; SAXReader reader = new SAXReader(); Document document = reader.read(new ByteArrayInputStream(xmlString.getBytes())); Element rootElement = document.getRootElement(); System.out.println("Root element: " + rootElement.getName()); for (Object element : rootElement.elements()) { Element el = (Element) element; System.out.println("Element name: " + el.getName() + ", Text: " + el.getText()); } } } ``` ### 使用 `JDOM` 解析 XML 字符串 `JDOM` 是另一个用于解析 XMLJava 库。以下是使用 `JDOM` 解析 XML 字符串的示例: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.ByteArrayInputStream; public class JDOMXMLParser { public static void main(String[] args) throws Exception { String xmlString = "<root><element>Hello, XML</element></root>"; SAXBuilder builder = new SAXBuilder(); Document document = builder.build(new ByteArrayInputStream(xmlString.getBytes())); Element rootElement = document.getRootElement(); System.out.println("Root element: " + rootElement.getName()); for (Object element : rootElement.getChildren()) { Element el = (Element) element; System.out.println("Element name: " + el.getName() + ", Text: " + el.getText()); } } } ``` 这些方法都可以有效地解析 XML 字符串,并根据需要提取和操作数据[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值