Webservice_10_Stax的基本操作(XPath方式读取xml,用XMLStreamReader创建Xml,用Transformer更新节点信息)
2013-07-31 15:35
591 查看
非常感谢孙浩老师。
![](https://img-blog.csdn.net/20130731153311609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlfY2hlbl8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
-----------------------------------------------修改过----------------------------------------------
XPath方式读取xml
/** * @Title: test06 * @Description: 用XPath方式读取xml。得到foodId='food_002'的name元素的值。 * @param * @return void * @throws */ @Test public void test06() { InputStream is = null; try { is = TestStax.class.getClassLoader().getResourceAsStream( "menus.xml"); // 创建文档处理对象 DocumentBuilder db = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); // 通过DocumentBuilder创建doc的文档对象 Document doc = db.parse(is); // 创建XPath XPath xpath = XPathFactory.newInstance().newXPath(); // 第一个参数就是xpath,第二参数就是文档 NodeList list = (NodeList) xpath.evaluate( "//food[@foodId='food_002']", doc, XPathConstants.NODESET); for (int i = 0; i < list.getLength(); i++) { // 遍历输出相应的结果 Element e = (Element) list.item(i); System.out.println(e.getElementsByTagName("name").item(0) .getTextContent()); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XPathExpressionException e) { e.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException e) { e.printStackTrace(); } } }
用XMLStreamReader创建Xml
/** * @Title: test07 * @Description: 使用XMLStreamReader创建Xml * @param * @return void * @throws */ @Test public void test07() { try { XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out); writer.writeStartDocument("UTF-8", "1.0"); writer.writeEndDocument(); String namespace = "http://1342334"; writer.writeStartElement("xsd","coder",namespace); writer.writeStartElement(namespace,"name"); writer.writeCharacters("lichen"); writer.writeEndElement(); writer.writeEndElement(); writer.flush(); writer.close(); } catch (XMLStreamException e) { e.printStackTrace(); } catch (FactoryConfigurationError e) { e.printStackTrace(); } }
用Transformer更新节点信息
/** * @Title: test08 * @Description: 使用Transformer更新节点信息 * @param * @return void * @throws */ @Test public void test08() { InputStream stream = TestStax.class.getClassLoader().getResourceAsStream("menus.xml"); try { //创建文档对象 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = builder.parse(stream); //创建XPath XPath xpath = XPathFactory.newInstance().newXPath(); Transformer tran = TransformerFactory.newInstance().newTransformer(); tran.setOutputProperty(OutputKeys.ENCODING,"UTF-8"); tran.setOutputProperty(OutputKeys.INDENT, "yes"); //第一个参数就是xpath,第二参数就是文档 NodeList list = (NodeList)xpath.evaluate("//food[name='Strawberry Belgian Waffles']", document,XPathConstants.NODESET); //获取price节点 Element be = (Element)list.item(0); Element e = (Element)(be.getElementsByTagName("price").item(0)); e.setTextContent("$1234"); Result result = new StreamResult(System.out); //通过tranformer修改节点 tran.transform(new DOMSource(document), result); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (XPathExpressionException e) { e.printStackTrace(); } }
-----------------------------------------------修改过----------------------------------------------
相关文章推荐
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)zz
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- [C#]实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- [C#]实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)