Stax解析XML的簡單一實例,stax解析xml

來源:互聯網
上載者:User

Stax解析XML的簡單一實例,stax解析xml

關鍵字解釋:

Stax:Streaming API for XML(用於讀寫XML的流介面)


xml檔案代碼:

<?xml version="1.0"?>  <service>      <item>          <task>test</task>          <strategy>repeat</strategy>      </item>      <item>          <task>WebpageRespTask</task>          <strategy>repeat</strategy>      </item>  </service>  


Java代碼:Junit4 testcase:TestStax

package unit_test;import java.io.InputStream;import javax.xml.stream.XMLEventReader;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.events.XMLEvent;import org.junit.Test;public class TestStax {//基於游標的解析方式@Testpublic void cursorBased() { XMLInputFactory factory = XMLInputFactory.newInstance();         InputStream is = null;         is = TestStax.class.getClassLoader().getResourceAsStream("service.xml");         XMLStreamReader  reader = null;         try {         reader = factory.createXMLStreamReader(is);while (reader.hasNext()) { int type = reader.next();// System.out.println(reader.next());// if (type==XMLStreamConstants.START_DOCUMENT||type==XMLStreamConstants.END_DOCUMENT) {// System.out.println(reader..toString());//}                 if(type==XMLStreamConstants.START_ELEMENT||type==XMLStreamConstants.END_ELEMENT){System.out.println(reader.getName().toString());}  else if(type==XMLStreamConstants.CHARACTERS) {    System.out.println(reader.getText().toString().trim());} }}          catch (XMLStreamException e) {e.printStackTrace();}            }//基於迭代的解析方式@Testpublic void iteratorBased(){ XMLInputFactory factory = XMLInputFactory.newInstance();         InputStream is = null;         is = TestStax.class.getClassLoader().getResourceAsStream("service.xml");         XMLEventReader  reader = null;         try {         reader = factory.createXMLEventReader(is);while (reader.hasNext()) {  XMLEvent event = reader.nextEvent();    if (event.isStartElement()) {String name = event.asStartElement().getName().toString();if (name.equals("strategy")) {System.out.println(reader.getElementText());}} }}          catch (XMLStreamException e) {e.printStackTrace();}      }} 



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.