生活随笔
收集整理的這篇文章主要介紹了
AXIOM的介绍与使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Axiom ,也就是Axis Object Model,Apache下一款XML對象模型
Axis2用Axiom處理soap文檔和soap信息。
Lightweight(輕量),更少的內存需要。 Deferred building(延遲構建) Pull based(pull模式),OM基于StAX--標準的pull parser API 。
Axiom采用pull解析方式,基于StAX(JSR173)。
SAX和DOM 都是基于push的解析方式,也就是說解析控制在parser本身。
Axiom和StAX緊密相關,
要使用Axiom,StAX相關的jar包也必須在classpath下 。
使用 XMLBench Document Model Benchmark 測試的結果表明,AXIOM 的性能和現有的高性能對象模型相當。但是 AXIOM 的內存占用要好于現有多數依靠 SAX 和/或 DOM 輸入輸出的對象模型。因此對于 Web 服務引擎或內存受限制設備這樣的 XML 處理器,AXIOM 是一種理想的選擇,它可用于一般的 XML 處理
?
<?xml version="1.0" encoding="UTF-8"?>
<fool><student><name>jack</name><id>12</id><age>22</age><sex>male</sex></student>
</fool> ? //構建文件輸入流
InputStream ins = AXIOMTest1.class.getResourceAsStream("/test1.xml");
//通過XMLInputFactory創建一個XML文件讀取流
XMLStreamReader xmlStreamReader = XMLInputFactory.newFactory().createXMLStreamReader(ins);
//構建一個StAXOMBuilder對象
StAXOMBuilder axomBuilder = new StAXOMBuilder(xmlStreamReader);
//獲取整個文檔元素
OMElement element = axomBuilder.getDocumentElement();
System.out.println(element);//打印包括<fool>標簽內的所有內容
//獲取文檔元素的第一個子元素
OMElement firstElement = element.getFirstElement();
System.out.println(firstElement);//打印第一個Student標簽內的所有內容
//獲取指定QName下的第一個子元素
OMElement ageElement = firstElement.getFirstChildWithName(new QName("age"));
System.out.println(ageElement);//打印<age>23</age>
//獲取子元素集合
Iterator<OMElement> ite = firstElement.getChildElements();
for (OMElement e = ite.next(); ite.hasNext();e = ite.next()) {
} ? OutputStream os = new FileOutputStream("D:/test.xml");
XMLStreamWriter streamWriter = XMLOutputFactory.newFactory().createXMLStreamWriter(os);
//獲取對象模型工廠類(元素都是通過該工廠創建)
OMFactory factory = OMAbstractFactory.getOMFactory();
//通過工廠創建一個文檔對象
OMDocument document = factory.createOMDocument();
//通過工廠創建一個root節點元素
OMElement rootElement = factory.createOMElement(new QName("root"));
OMElement personElement = factory.createOMElement(new QName("person"));
//給節點元素添加文本內容
personElement.addChild(factory.createOMText("測試"));
//給節點添加屬性
personElement.addAttribute(factory.createOMAttribute("id", null, "101"));
//節點元素添加到根節點下
rootElement.addChild(personElement);
//將根節點添加到文檔中
document.addChild(rootElement);
//序列化文檔對象到輸出流中
document.serialize(streamWriter);
streamWriter.flush();
streamWriter.close(); 轉http://blog.sina.com.cn/s/blog_6974144701012lud.html
總結
以上是生活随笔 為你收集整理的AXIOM的介绍与使用 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。