Webservice_09_Stax的基本操作(基于光标,基于迭代模型和过滤器)
发布时间:2020-12-17 00:12:20 所属栏目:安全 来源:网络整理
导读:非常感谢 孙浩 老师。 “光标” 方法一: /** * @Title: test01 * @Description: 用“光标”从上至下输出menus.xml的普通节点的名字和文本节点的文本 * @param * @return void * @throws */@Testpublic void test01() {XMLInputFactory factory = XMLInputFa
非常感谢孙浩老师。 “光标”方法一: /** * @Title: test01 * @Description: 用“光标”从上至下输出menus.xml的普通节点的名字和文本节点的文本 * @param * @return void * @throws */ @Test public void test01() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream stream = TestStax.class.getClassLoader() .getResourceAsStream("menus.xml"); try { XMLStreamReader reader = factory.createXMLStreamReader(stream); while (reader.hasNext()) { int index = reader.next(); // 开始节点 if (index == XMLStreamConstants.START_ELEMENT) { System.out.println(reader.getName()); // 文本节点 } else if (index == XMLStreamConstants.CHARACTERS) { System.out.println(reader.getText().trim()); // 结束节点 } else if (index == XMLStreamConstants.END_ELEMENT) { System.out.println("/" + reader.getName()); } } } catch (XMLStreamException e) { e.printStackTrace(); } finally { if (stream != null) try { stream.close(); } catch (IOException e) { e.printStackTrace(); } } } 方法二: /** * @Title: test02 * @Description: 用“光标”从上至下输出menus.xml中“food”元素的第一个属性。 * @param * @return void * @throws */ @Test public void test02() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream stream = TestStax.class.getClassLoader() .getResourceAsStream("menus.xml"); try { XMLStreamReader reader = factory.createXMLStreamReader(stream); while (reader.hasNext()) { int index = reader.next(); // 开始节点 if (index == XMLStreamConstants.START_ELEMENT) { if (reader.getName().toString() == "food") { System.out.println(reader.getAttributeName(0) + ":t" + reader.getAttributeValue(0)); } } } } catch (XMLStreamException e) { e.printStackTrace(); } finally { if (stream != null) try { stream.close(); } catch (IOException e) { e.printStackTrace(); } } } ? 方法三: /** * @Title: test03 * @Description: 用“光标”从上至下输出menus.xml中每个“food”的name和price。 * @param * @return void * @throws */ @Test public void test03() { XMLInputFactory factory = XMLInputFactory.newInstance(); InputStream stream = TestStax.class.getClassLoader() .getResourceAsStream("menus.xml"); try { XMLStreamReader reader = factory.createXMLStreamReader(stream); while (reader.hasNext()) { int index = reader.next(); // 开始节点 if (index == XMLStreamConstants.START_ELEMENT) { String name = reader.getName().toString(); if (name == "name") { System.out.print(reader.getElementText() + "t"); } if (name == "price") { System.out.println(reader.getElementText()); } } } } catch (XMLStreamException e) { e.printStackTrace(); } finally { if (stream != null) try { stream.close(); } catch (IOException e) { e.printStackTrace(); } } }
|