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.Namespace;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
public class DuXMLDoc {
public List xmlElements(String xmlDoc) {
//创建一个新的字符串
StringReader read = new StringReader(xmlDoc);
//创建新的输入源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 jiedian = root.getChildren();
//获得XML中的命名空间(XML中未定义可不写)
Namespace ns = root.getNamespace();
Element et = null;
for(int i=0;i<jiedian.size();i++){
et = (Element) jiedian.get(i);//循环依次得到子元素
/**//*
* 无命名空间定义时
* et.getChild("users_id").getText();
* et.getChild("users_address",ns).getText()
*/
System.out.println(et.getChild("users_id",ns).getText());
System.out.println(et.getChild("users_address",ns).getText());
}
/**//*
* 如要取<row>下的子元素的名称
*/
et = (Element) jiedian.get(0);
List zjiedian = et.getChildren();
for(int j=0;j<zjiedian.size();j++){
Element xet = (Element) zjiedian.get(j);
System.out.println(xet.getName());
}
} catch (JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return null;
}
public static void main(String[] args){
DuXMLDoc doc = new DuXMLDoc();
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
"<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
"<row resultcount=\"1\">"+
"<users_id>1001 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1001号 </users_address>"+
"</row>"+
"<row resultcount=\"1\">"+
"<users_id>1002 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1002号 </users_address>"+
"</row>"+
"</Result>";
doc.xmlElements(xml);
}
}
分享到:
相关推荐
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是XML的核心,它们通过层级关系...
NULL 博文链接:https://songlitao.iteye.com/blog/2257789
// 解析XML字符串 Document doc = builder.build(new StringReader(xml)); Element root = doc.getRootElement(); // 输出根元素 System.out.println("根元素: " + root.getName()); } } ``` 这段代码中,...
### JDOM 生成和解析 XML 字符串 #### 一、概述 JDOM(Java Document Object Model)是一种基于 Java 的 API,用于处理 XML 文档。它提供了一种简单且直观的方式来构建、修改以及读取 XML 文件。JDOM 主要有两个...
// 创建SAXBuilder实例以解析XML字符串 SAXBuilder saxBuilder = new SAXBuilder(); // 使用StringReader将XML字符串作为输入 StringReader inputReader = new StringReader(xml); // 解析XML字符串并创建...
下面将详细介绍这些解析器的工作原理以及它们在生成XML并返回XML字符串形式时的应用。 1. DOM (Document Object Model) DOM是一种基于树形结构的XML解析模型,它将整个XML文档加载到内存中,形成一个完整的文档对象...
例如,可以添加新元素、删除元素、修改属性值,然后使用`OutputFormat`和`Transformer`将DOM树转换回XML字符串或写入文件。 **5. 性能与优化** 虽然JDOM提供了方便的API,但其性能相对较低,因为整个XML文档会一次...
6. **输出XML**:使用`XMLOutputter`将`Document`对象转换回XML字符串或写入文件。 ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString = xmlOutput....
5. **转换回XML字符串**:如果需要将修改后的XML结构转换回字符串,可以使用`XMLOutputter`类: ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString =...
4. 输出XML,使用`XMLOutputter`类将`Document`对象转换为字符串或写入文件。 **示例代码** ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2...
6. **保存到文件**:使用`XMLOutputter`类将修改后的JDOM对象转换回XML字符串,并写入到文件中。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xmlOutput.setFormat(Format.getPrettyFormat()); // 设置...
5. 若要写回XML,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串或直接写入文件。 在实际应用中,JDOM可以结合XPath(通过jaxen.jar实现)来快速定位XML文档中的特定节点,提高开发效率。例如,通过`...
本文将深入探讨Java平台下解析XML的四种主流方法:DOM、SAX、DOM4J和JDOM。 1. **DOM(Document Object Model)解析XML** DOM是一种树形结构,它将整个XML文档加载到内存中,形成一个完整的对象模型。这种解析方式...
修改后,需要使用`XMLOutputter`来生成新的XML字符串或写入到文件。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xmlOutput.output(document, new FileWriter("output.xml")); ``` ### 示例代码 ...
`XMLOutputter`负责将`Document`对象转换为XML字符串并写入到文件。 在实际应用中,你可能需要根据XML的结构和需求调整这些步骤。JDOM提供了丰富的API来处理XML,包括查找、添加、删除元素和属性,以及处理命名...
4. `org.jdom.output`: 提供输出类,如`XMLOutputter`用于将`Document`对象转化为XML字符串。 **四、JDOM使用方法** 1. `Document`类: 代表整个XML文档,可以通过`SAXBuilder`或`DOMBuilder`从XML源创建。 2. `...
此外,文档提到了JDOM的输出类XMLOutputter,它可以将JDOM的文档对象输出为格式化的XML字符串。 在示例代码中,可以看到JDOM在创建和操作XML文档时的直观性。例如,通过new Element("GREETING")创建一个元素,并...
- 修改完成后,使用`Transformer`将`Document`对象转换回XML字符串或写入文件。 5. **处理命名空间**: - JDOM支持XML命名空间,`Namespace`类用于定义命名空间,可以附加到元素上。 - 解析带有命名空间的XML时...
3. 保存更改:使用`org.jdom2.output.Format`和`XMLOutputter`或`Transformer`将`Document`对象转换为XML字符串或写入文件。 在实际开发中,选择DOM还是JDOM取决于需求。DOM适合小到中型的XML文件,且需要频繁随机...