日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

StAX解析XML

系統(tǒng) 2039 0
Java代碼 復(fù)制代碼
  1. package ?com.xml.parseXml; ??
  2. ??
  3. import ?java.io.InputStream; ??
  4. ??
  5. import ?javax.xml.stream.XMLEventReader; ??
  6. import ?javax.xml.stream.XMLInputFactory; ??
  7. import ?javax.xml.stream.events.StartElement; ??
  8. import ?javax.xml.stream.events.XMLEvent; ??
  9. ??
  10. import ?com.xml.bean.Address; ??
  11. import ?com.xml.bean.ReadXmlFileStream; ??
  12. ??
  13. public ? class ?StAXParseXml?{ ??
  14. ???? private ? static ?Address?address?=? new ?Address(); ??
  15. ??
  16. ???? public ? static ? void ?main(String[]?args)?{ ??
  17. ??
  18. ???????? long ?lasting?=?System.currentTimeMillis(); ??
  19. ??
  20. ???????? try ?{ ??
  21. ????????????InputStream?in?=?ReadXmlFileStream.getXmlFileStream(); ??
  22. ??
  23. ????????????XMLInputFactory?xmlif?=?XMLInputFactory.newInstance(); ??
  24. ???????????? //?用于解析?XML?事件的頂層接口 ??
  25. ????????????XMLEventReader?reader?=?xmlif.createXMLEventReader(in); ??
  26. ???????????? //?處理標(biāo)記事件的基礎(chǔ)事件接口 ??
  27. ????????????XMLEvent?event?=? null ; ??
  28. ??
  29. ???????????? while ?(reader.hasNext())?{ ??
  30. ????????????????event?=?reader.nextEvent(); ??
  31. ???????????????? if ?(event.isStartElement())?{? //?起始元素 ??
  32. ????????????????????StartElement?startElt?=?event.asStartElement(); ??
  33. ???????????????????? if ?(startElt.getName().getLocalPart().equals( "no" ))?{ ??
  34. ????????????????????????address.setNo(reader.getElementText()); ??
  35. ????????????????????}? else ? if ?(startElt.getName().getLocalPart().equals( "addr" ))?{ ??
  36. ????????????????????????address.setAddr(reader.getElementText()); ??
  37. ????????????????????????System.out.println(address); ??
  38. ????????????????????} ??
  39. ????????????????}? else ? if ?(event.isCharacters())?{? //?文本內(nèi)容 ??
  40. ???????????????????? //?相鄰標(biāo)記之間都是文本內(nèi)容 ??
  41. ????????????????????System.out.println( "解析的是文本內(nèi)容:" ??
  42. ????????????????????????????+?event.asCharacters().getData()); ??
  43. ????????????????}? else ? if ?(event.isEndElement())?{? //?結(jié)束元素 ??
  44. ????????????????????System.out.println( "解析的是結(jié)束標(biāo)記:" ??
  45. ????????????????????????????+?event.asEndElement().getName()); ??
  46. ????????????????} ??
  47. ????????????} ??
  48. ????????}? catch ?(Exception?e)?{ ??
  49. ????????????e.printStackTrace(); ??
  50. ????????} ??
  51. ????????System.out.println( "運行時間:" ?+?(System.currentTimeMillis()?-?lasting) ??
  52. ????????????????+? "?毫秒" ); ??
  53. ??
  54. ????} ??
  55. ??
  56. }??
Java代碼 復(fù)制代碼
  1. package ?com.xml.parseXml; ??
  2. ??
  3. import ?java.io.InputStream; ??
  4. ??
  5. import ?javax.xml.stream.XMLEventReader; ??
  6. import ?javax.xml.stream.XMLInputFactory; ??
  7. import ?javax.xml.stream.events.StartElement; ??
  8. import ?javax.xml.stream.events.XMLEvent; ??
  9. ??
  10. import ?com.xml.bean.Address; ??
  11. import ?com.xml.bean.ReadXmlFileStream; ??
  12. ??
  13. public ? class ?StAXParseXml?{ ??
  14. ???? private ? static ?Address?address?=? new ?Address(); ??
  15. ??
  16. ???? public ? static ? void ?main(String[]?args)?{ ??
  17. ??
  18. ???????? long ?lasting?=?System.currentTimeMillis(); ??
  19. ??
  20. ???????? try ?{ ??
  21. ????????????InputStream?in?=?ReadXmlFileStream.getXmlFileStream(); ??
  22. ??
  23. ????????????XMLInputFactory?xmlif?=?XMLInputFactory.newInstance(); ??
  24. ???????????? //?用于解析?XML?事件的頂層接口 ??
  25. ????????????XMLEventReader?reader?=?xmlif.createXMLEventReader(in); ??
  26. ???????????? //?處理標(biāo)記事件的基礎(chǔ)事件接口 ??
  27. ????????????XMLEvent?event?=? null ; ??
  28. ??
  29. ???????????? while ?(reader.hasNext())?{ ??
  30. ????????????????event?=?reader.nextEvent(); ??
  31. ???????????????? if ?(event.isStartElement())?{? //?起始元素 ??
  32. ????????????????????StartElement?startElt?=?event.asStartElement(); ??
  33. ???????????????????? if ?(startElt.getName().getLocalPart().equals( "no" ))?{ ??
  34. ????????????????????????address.setNo(reader.getElementText()); ??
  35. ????????????????????}? else ? if ?(startElt.getName().getLocalPart().equals( "addr" ))?{ ??
  36. ????????????????????????address.setAddr(reader.getElementText()); ??
  37. ????????????????????????System.out.println(address); ??
  38. ????????????????????} ??
  39. ????????????????}? else ? if ?(event.isCharacters())?{? //?文本內(nèi)容 ??
  40. ???????????????????? //?相鄰標(biāo)記之間都是文本內(nèi)容 ??
  41. ????????????????????System.out.println( "解析的是文本內(nèi)容:" ??
  42. ????????????????????????????+?event.asCharacters().getData()); ??
  43. ????????????????}? else ? if ?(event.isEndElement())?{? //?結(jié)束元素 ??
  44. ????????????????????System.out.println( "解析的是結(jié)束標(biāo)記:" ??
  45. ????????????????????????????+?event.asEndElement().getName()); ??
  46. ????????????????} ??
  47. ????????????} ??
  48. ????????}? catch ?(Exception?e)?{ ??
  49. ????????????e.printStackTrace(); ??
  50. ????????} ??
  51. ????????System.out.println( "運行時間:" ?+?(System.currentTimeMillis()?-?lasting) ??
  52. ????????????????+? "?毫秒" ); ??
  53. ??
  54. ????} ??
  55. ??
  56. }??
    package com.xml.parseXml;

import java.io.InputStream;

import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;

import com.xml.bean.Address;
import com.xml.bean.ReadXmlFileStream;

public class StAXParseXml {
	private static Address address = new Address();

	public static void main(String[] args) {

		long lasting = System.currentTimeMillis();

		try {
			InputStream in = ReadXmlFileStream.getXmlFileStream();

			XMLInputFactory xmlif = XMLInputFactory.newInstance();
			// 用于解析 XML 事件的頂層接口
			XMLEventReader reader = xmlif.createXMLEventReader(in);
			// 處理標(biāo)記事件的基礎(chǔ)事件接口
			XMLEvent event = null;

			while (reader.hasNext()) {
				event = reader.nextEvent();
				if (event.isStartElement()) { // 起始元素
					StartElement startElt = event.asStartElement();
					if (startElt.getName().getLocalPart().equals("no")) {
						address.setNo(reader.getElementText());
					} else if (startElt.getName().getLocalPart().equals("addr")) {
						address.setAddr(reader.getElementText());
						System.out.println(address);
					}
				} else if (event.isCharacters()) { // 文本內(nèi)容
					// 相鄰標(biāo)記之間都是文本內(nèi)容
					System.out.println("解析的是文本內(nèi)容:"
							+ event.asCharacters().getData());
				} else if (event.isEndElement()) { // 結(jié)束元素
					System.out.println("解析的是結(jié)束標(biāo)記:"
							+ event.asEndElement().getName());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("運行時間:" + (System.currentTimeMillis() - lasting)
				+ " 毫秒");

	}

}

  

?

依賴的類:

1.Address .java

Java代碼 復(fù)制代碼
  1. package ?com.xml.bean; ??
  2. ??
  3. public ? class ?Address?{ ??
  4. ??
  5. ???? private ?String?no; ??
  6. ???? private ?String?addr; ??
  7. ???? /** ?
  8. ?????*?@return?the?no ?
  9. ?????*/ ??
  10. ???? public ?String?getNo()?{ ??
  11. ???????? return ?no; ??
  12. ????} ??
  13. ???? /** ?
  14. ?????*?@param?no?the?no?to?set ?
  15. ?????*/ ??
  16. ???? public ? void ?setNo(String?no)?{ ??
  17. ???????? this .no?=?no; ??
  18. ????} ??
  19. ???? /** ?
  20. ?????*?@return?the?addr ?
  21. ?????*/ ??
  22. ???? public ?String?getAddr()?{ ??
  23. ???????? return ?addr; ??
  24. ????} ??
  25. ???? /** ?
  26. ?????*?@param?addr?the?addr?to?set ?
  27. ?????*/ ??
  28. ???? public ? void ?setAddr(String?addr)?{ ??
  29. ???????? this .addr?=?addr; ??
  30. ????} ??
  31. ???? @Override ??
  32. ???? public ?String?toString()?{ ??
  33. ???????? return ? "編號:" ?+? this .no?+? ",地址:" ?+? this .addr; ??
  34. ????} ??
  35. ???? ??
  36. ???? ??
  37. }??
Java代碼 復(fù)制代碼
  1. package ?com.xml.bean; ??
  2. ??
  3. public ? class ?Address?{ ??
  4. ??
  5. ???? private ?String?no; ??
  6. ???? private ?String?addr; ??
  7. ???? /** ?
  8. ?????*?@return?the?no ?
  9. ?????*/ ??
  10. ???? public ?String?getNo()?{ ??
  11. ???????? return ?no; ??
  12. ????} ??
  13. ???? /** ?
  14. ?????*?@param?no?the?no?to?set ?
  15. ?????*/ ??
  16. ???? public ? void ?setNo(String?no)?{ ??
  17. ???????? this .no?=?no; ??
  18. ????} ??
  19. ???? /** ?
  20. ?????*?@return?the?addr ?
  21. ?????*/ ??
  22. ???? public ?String?getAddr()?{ ??
  23. ???????? return ?addr; ??
  24. ????} ??
  25. ???? /** ?
  26. ?????*?@param?addr?the?addr?to?set ?
  27. ?????*/ ??
  28. ???? public ? void ?setAddr(String?addr)?{ ??
  29. ???????? this .addr?=?addr; ??
  30. ????} ??
  31. ???? @Override ??
  32. ???? public ?String?toString()?{ ??
  33. ???????? return ? "編號:" ?+? this .no?+? ",地址:" ?+? this .addr; ??
  34. ????} ??
  35. ???? ??
  36. ???? ??
  37. }??
    package com.xml.bean;

public class Address {

	private String no;
	private String addr;
	/**
	 * @return the no
	 */
	public String getNo() {
		return no;
	}
	/**
	 * @param no the no to set
	 */
	public void setNo(String no) {
		this.no = no;
	}
	/**
	 * @return the addr
	 */
	public String getAddr() {
		return addr;
	}
	/**
	 * @param addr the addr to set
	 */
	public void setAddr(String addr) {
		this.addr = addr;
	}
	@Override
	public String toString() {
		return "編號:" + this.no + ",地址:" + this.addr;
	}
	
	
}

  

?2.ReadXmlFileStream .java

Java代碼 復(fù)制代碼
  1. /** ?
  2. ?*? ?
  3. ?*/ ??
  4. package ?com.xml.bean; ??
  5. ??
  6. import ?java.io.InputStream; ??
  7. ??
  8. public ? class ?ReadXmlFileStream?{ ??
  9. ??
  10. ???? private ? static ? final ?String?XML_FILE?=? "com/xml/bean/addresses.xml" ; ??
  11. ??
  12. ???? public ? static ?InputStream?getXmlFileStream()?{ ??
  13. ???????? return ?Thread.currentThread().getContextClassLoader() ??
  14. ????????????????.getResourceAsStream(XML_FILE); ??
  15. ????} ??
  16. ??
  17. }??
Java代碼 復(fù)制代碼
  1. /** ?
  2. ?*? ?
  3. ?*/ ??
  4. package ?com.xml.bean; ??
  5. ??
  6. import ?java.io.InputStream; ??
  7. ??
  8. public ? class ?ReadXmlFileStream?{ ??
  9. ??
  10. ???? private ? static ? final ?String?XML_FILE?=? "com/xml/bean/addresses.xml" ; ??
  11. ??
  12. ???? public ? static ?InputStream?getXmlFileStream()?{ ??
  13. ???????? return ?Thread.currentThread().getContextClassLoader() ??
  14. ????????????????.getResourceAsStream(XML_FILE); ??
  15. ????} ??
  16. ??
  17. }??
    /**
 * 
 */
package com.xml.bean;

import java.io.InputStream;

public class ReadXmlFileStream {

	private static final String XML_FILE = "com/xml/bean/addresses.xml";

	public static InputStream getXmlFileStream() {
		return Thread.currentThread().getContextClassLoader()
				.getResourceAsStream(XML_FILE);
	}

}

  

?

被解析的XML結(jié)構(gòu):

addresses.xml

Xml代碼 復(fù)制代碼
  1. <? xml ? version = "1.0" ? encoding = "UTF-8" ?> ??
  2. < addresses > ??
  3. ???? < value > ??
  4. ???????? < no > A100 </ no > ??
  5. ???????? < addr > 廣州天河區(qū)天河路 </ addr > ??
  6. ???? </ value > ??
  7. ???? < value > ??
  8. ???????? < no > A101 </ no > ??
  9. ???????? < addr > 廣州天河區(qū)五山路 </ addr > ??
  10. ???? </ value > ??
  11. </ addresses > ??
Xml代碼 復(fù)制代碼
  1. <? xml ? version = "1.0" ? encoding = "UTF-8" ?> ??
  2. < addresses > ??
  3. ???? < value > ??
  4. ???????? < no > A100 </ no > ??
  5. ???????? < addr > 廣州天河區(qū)天河路 </ addr > ??
  6. ???? </ value > ??
  7. ???? < value > ??
  8. ???????? < no > A101 </ no > ??
  9. ???????? < addr > 廣州天河區(qū)五山路 </ addr > ??
  10. ???? </ value > ??
  11. </ addresses > ?

StAX解析XML


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 浮梁县| 建昌县| 浦江县| 盐山县| 逊克县| 林芝县| 建昌县| 醴陵市| 望谟县| 天全县| 翁源县| 肥东县| 阿拉善左旗| 通海县| 巴塘县| 普兰店市| 多伦县| 广灵县| 贵州省| 淅川县| 阜康市| 泰和县| 吴堡县| 时尚| 上杭县| 隆德县| 英超| 洛宁县| 水富县| 罗甸县| 武平县| 澄江县| 嘉峪关市| 资溪县| 昌邑市| 清河县| 灌云县| 万盛区| 东阿县| 哈尔滨市| 河津市|