xml怎么把每个标签都取⼀遍_javaxml中怎么获取相同节点名
元素如:
java中获取xml节点元素值 根据不同的处理xml⽅式不同⽽不同。
java中解析xml的⽅式:⼤体可以使⽤以下四种
------------------------------------------------------------
DOM(Document Object Model)
为 XML ⽂档的已解析版本定义了⼀组接⼝。解析器读⼊整个⽂档,
然后构建⼀个驻留内存的树结构,然后代码就可以使⽤ DOM 接⼝来操作这个树结构。
优点:整个⽂档树在内存中,便于操作;⽀持删除、修改、重新排列等多种功能;
缺点:将整个⽂档调⼊内存(包括⽆⽤的节点),浪费时间和空间;
使⽤场合:⼀旦解析了⽂档还需多次访问这些数据;硬件资源充⾜(内存、CPU)
SAX(Simple API for XML)
为解决DOM的问题,出现了SAX。SAX ,事件驱动。
当解析器发现元素开始、元素结束、⽂本、⽂档的开始或结束等时,发送事件,
程序员编写响应这些事件的代码,保存数据。优点:不⽤事先调⼊整个⽂档,占⽤资源少;
SAX解析器代码⽐DOM解析器代码⼩,适于Applet,下载。
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;⽆状态性;
从事件中只能得到⽂本,但不知该⽂本属于哪个元素;
使⽤场合:Applet;只需XML⽂档的少量内容,很少回头访问;机器内存少;
DOM4J
DOM4J 是⼀个⾮常⾮常优秀的Java XML API,具有性能优异、功能强⼤和极端易⽤使⽤的特点,
同时它也是⼀个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使⽤ DOM4J 来读写 XML,
特别值得⼀提的是连 Sun 的 JAXM 也在⽤ DOM4J
JDOM
为减少DOM、SAX的编码量,出现了JDOM;优点:20-80原则,极⼤减少了代码量。
使⽤场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使⽤SAX(最常⽤)、DOM、Xanan⽂档。
------------------------------
参考代码
dom4j
------------------------------
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
---------------------------------------------
File f = new File("l");
SAXReader reader = new SAXReader();
Document doc = ad(f);
Element root = RootElement();
for (Iterator iter = root.elementIterator(); iter.hasNext();) {
Element element = (Element) ();
//System.out.println(element.attributeValue("email"));
String ids=element.elementText("stuId");
System.out.println(ids);
String names=element.elementText("stuName");
System.out.println(names);
String ages=element.elementText("age");
System.out.println(ages);
}
------------------------------------
dom ⽅式
---------------
l.parsers.*;
l.transform.*;
l.transform.dom.DOMSource;
l.transform.stream.StreamResult;
------------------------
DocumentBuilderFactory factory = wInstance(); // 允许名字空间
// factory.setNamespaceAware(true);
// 允许验证
// factory.setValidating(true);
// 获得DocumentBuilder的⼀个实例
DocumentBuilder builder = null;
try {
builder = wDocumentBuilder();
} catch (ParserConfigurationException pce) {
// 出异常时输出异常信息,然后退出,下同
}
Document doc = null;
// 解析⽂档,并获得⼀个Document实例。
try {
try {
// InputStream is=new FileInputStream("l");
doc = builder.parse("l");
// doc = builder.parse(is);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (DOMException dom) {
} catch (IOException ioe) {
/
/ it(1);
}
for (int i = 0; i < Length(); i++) {
Element elmtStudent = (Element) nlStudent.item(i);
String email = Attribute("email");
System.out.println(email);
NodeList ids = ElementsByTagName("stuId"); Element id = (Element)ids.item(0);
使用dom4j解析xml文件Node tId = id.getFirstChild();
System.out.NodeValue());
NodeList names = ElementsByTagName("stuName"); Element e = (Element)names.item(0);
Node tName = e.getFirstChild();
System.out.NodeValue()); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论