Axiom ,也就是Axis Object Model,Apache下一款XML对象模型
使用 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