氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          用SAX(JDK自帶API)解析XML文件

          解析的工具類繼承org.xml.sax.helpers.DefaultHandler,然后覆蓋父類的幾個方法即可。方法的詳細解釋可以參照JDK的API文檔。

          • startDocument() 開始解析XML時被調用,一般可以用來做初始化操作。
          • startElement() 解析到某個元素(標簽)的開頭時(例如)被調用,一般用來判斷是否已開始解析某特定元素(標簽)。
          • endElement() 解析完某個元素(標簽)時(例如)被調用,一般在此對某些邏輯標記做重置操作。
          • characters()  解析到某個文本元素(例如張三)時被調用,一般在此方法中取值,需要結合startElement()方法中設置的邏輯標志進行判斷是否解析到XML文檔中特定的位置。

          下面是一個實例:

          Java代碼:
          1. import java.util.ArrayList;
          2. import java.util.List;
          3. import java.io.File;
          4. import java.io.IOException;
          5. import javax.xml.parsers.ParserConfigurationException;
          6. import javax.xml.parsers.SAXParser;
          7. import javax.xml.parsers.SAXParserFactory;
          8. import org.xml.sax.Attributes;
          9. import org.xml.sax.SAXException;
          10. import org.xml.sax.helpers.DefaultHandler;
          11. public class URLPatternSAXParser extends DefaultHandler{
          12. private List urlPatternList;
          13. private boolean isSecurityConstraint;
          14. private boolean isWebResourceCollection;
          15. private boolean isUrlPattern;
          16. private final String elementSecurityConstraint = "security-constraint";
          17. private final String elementWebResourceCollection = "web-resource-collection";
          18. private final String elementUrlPattern = "url-pattern";
          19. public List getUrlPatternList() {
          20. return urlPatternList;
          21. }
          22. @Override
          23. public void startDocument() throws SAXException {
          24. this.urlPatternList = new ArrayList();
          25. }
          26. //原文參考自杭州紅木家具維修http://www.hzlxwx.com
          27. @Override
          28. public void startElement(String uri, String localName, String qName,
          29. Attributes attributes) throws SAXException {
          30. if (elementSecurityConstraint.equals(qName)) {
          31. isSecurityConstraint = true;
          32. return;
          33. }
          34. if (isSecurityConstraint && elementWebResourceCollection.equals(qName)) {
          35. isWebResourceCollection = true;
          36. return;
          37. }
          38. if (isSecurityConstraint && isWebResourceCollection
          39. && elementUrlPattern.equals(qName))
          40. isUrlPattern = true;
          41. }
          42. @Override
          43. public void endElement(String uri, String localName, String qName)
          44. throws SAXException {
          45. if (elementSecurityConstraint.equals(qName)) {
          46. isSecurityConstraint = false;
          47. }
          48. if (elementWebResourceCollection.equals(qName))
          49. isWebResourceCollection = false;
          50. if (elementUrlPattern.equals(qName))
          51. isUrlPattern = false;
          52. }
          53. @Override
          54. public void characters(char[] ch, int start, int length)
          55. throws SAXException {
          56. if (isSecurityConstraint && isWebResourceCollection && isUrlPattern) {
          57. this.urlPatternList.add(new String(ch, start, length));
          58. }
          59. }
          60. public void parser(File xmlFile) throws SAXException, IOException,
          61. ParserConfigurationException {
          62. if (xmlFile == null) {
          63. throw new IllegalArgumentException(
          64. "parameter 'xmlFile' must not null !");
          65. }
          66. SAXParserFactory factory = SAXParserFactory.newInstance();
          67. SAXParser parser = factory.newSAXParser();
          68. // 禁止DTD解析,避免因找不到DTD文件導致解析失敗。
          69. parser.getXMLReader()
          70. .setFeature(
          71. "http://apache.org/xml/features/nonvalidating/load-external-dtd",
          72. false);
          73. try {
          74. parser.parse(xmlFile, this);
          75. catch (SAXException e) {
          76. System.err.println("Cann't parse " + xmlFile.getAbsolutePath());
          77. throw e;
          78. }
          79. }
          80. }

          上面代碼中,parser()是主方法,調用完此方法之后,就可以調用getUrlPatternList()方法獲取到從web.xml中解析出來的url-pattern節點的值(security-constraint/web-resource-collection/url-pattern)。


          另外,取元素的屬性值,可以在startElement()方法中用attributes.getValue("<屬性名>")獲取到。


          posted on 2013-04-15 17:58 你爸是李剛 閱讀(609) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 昌都县| 石台县| 友谊县| 宝丰县| 安吉县| 吴旗县| 泰来县| 光泽县| 佛冈县| 八宿县| 崇州市| 罗山县| 西峡县| 铜川市| 东安县| 揭东县| 七台河市| 汪清县| 志丹县| 丽水市| 莫力| 洛阳市| 沧源| 北海市| 二连浩特市| 界首市| 特克斯县| 巴南区| 冀州市| 邹平县| 康乐县| 顺平县| 丽水市| 莱阳市| 贺州市| 武鸣县| 桂阳县| 华坪县| 巫山县| 桑日县| 南涧|