`
阅读更多
对两种情况,这个文件不需要修改:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 import org.xml.sax.Attributes;
 2 import org.xml.sax.helpers.DefaultHandler;
 3 import org.xml.sax.SAXException;
 4 import java.util.Properties;
 5 
 6 public class ConfigParser extends DefaultHandler
 7 {
 8     ////定义一个Properties 用来存放 dbhost dbuser dbpassword的值
 9     private Properties props;
10     
11     private String currentSet;
12     private String currentName;
13     private StringBuffer currentValue = new StringBuffer();
14     //构建器初始化props
15     public ConfigParser()
16     {
17         this.props = new Properties();
18     }
19     public Properties getProps()
20     {
21         return this.props;
22     }
23     
24     
25     //定义开始解析元素的方法. 这里是将<xxx>中的名称xxx提取出来.
26     public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
27     {
28         currentValue.delete(0, currentValue.length());
29         this.currentName =qName;
30     }
31     //这里是将<xxx></xxx>之间的值加入到currentValue
32     public void characters(char[] ch, int start, int length) throws SAXException
33     {
34         currentValue.append(ch, start, length);
35     }
36     //在遇到</xxx>结束后,将之前的名称和值一一对应保存在props中
37     public void endElement(String uri, String localName, String qName) throws SAXException
38     {
39         props.put(qName.toLowerCase(), currentValue.toString().trim());
40 //System.out.println(qName.toLowerCase() + " " + currentValue.toString().trim());
41     }
42 }
43 

这个文件中注释 与注释之间的是对不同情况的对比:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 import java.net.URL;
 2 import java.util.Properties;
 3 import javax.xml.parsers.SAXParser;
 4 import javax.xml.parsers.SAXParserFactory;
 5 
 6 public class ParseXML
 7 {
 8     //定义一个Properties 用来存放标签值
 9     private Properties props;
10     public Properties getProps()
11     {
12         return this.props;
13     }
14     public void parse(String filename) throws Exception
15     {
16         //将解析器对象化
17       try
18         {
19           ConfigParser handler = new ConfigParser();
20         //获取SAX工厂对象
21         SAXParserFactory factory = SAXParserFactory.newInstance();
22         factory.setNamespaceAware(false);
23         factory.setValidating(false);
24         //获取SAX解析
25         SAXParser parser = factory.newSAXParser();
26      
27 /////////////////////////////////////////////////////////////////////////////
28 //对字符串解析:
29 //            InputSource is = new InputSource ();
30 //            StringReader xmlStr = new StringReader (filename);
31 //            is.setCharacterStream (xmlStr);
32 //            parser.parse (is,handler);
33  ////////////////////////////////////////////////////////////////////////////    
34             
35 ////////////////////////////////////////////////////////////////////////////
36 //  对文件解析:
37         URL confURL = getClass().getResource(filename);
38         if(confURL == null) System.out.println("error");
39         
40             //将解析器和解析对象xml联系起来,开始解析
41             parser.parse(confURL.toString(), handler);
42 /////////////////////////////////////////////////////////////////////////
43           props = handler.getProps();
44         }
45      catch(Exception e)
46      {
47          System.out.println (e.toString ());
48      }
49     }
50 }
51 
52 


测试程序:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 import java.util.*;
 2 
 3 public class Main
 4 {
 5     static ParseXML px = new ParseXML ();
 6     public static void main (String[] args)
 7     {
 8         //load_properties ();   //解析xml文件
 9         load_properStr();  //解析字符串用这个方法
10         String  issuccessful = (String) getObject ("result");
11         String  objRequestID =  (String) getObject ("msg");
12         System.out.println ("issuccessful ::"+issuccessful);
13         System.out.println ("objRequestID ::"+objRequestID);
14         
15     }
16     
17     public static void load_properStr ()
18     {
19         
20         String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
21                 "<response>"+
22                 "<result>0</result>"+
23                 "<msg>47F42A2D578</msg>"+
24                 "</response>";
25         try
26         {
27             px.parse (str);
28         }
29         catch (Exception ex)
30         {
31             ex.printStackTrace ();
32         }
33         
34     }
35     public static void  load_properties ()
36     {
37         try
38         {
39             px.parse ("/properties.xml");
40         }
41         catch (Exception ex)
42         {
43             ex.printStackTrace ();
44         }
45     }
46     public static Object getObject (String keyname)
47     {
48         return px.getProps ().getProperty (keyname);
49     }
50 }
51 




分享到:
评论

相关推荐

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    纯C语言解析xml字符串

    纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 ...

    PB解析XML字符串 把XML 变为数据窗口

    标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...

    C++解析xml文档或者xml字符串方法

    在`RealPlay`中,使用`loadXML`方法解析XML字符串,而不是`load`方法,因为`loadXML`用于解析内存中的XML字符串。 总结来说,C++通过MSXML库提供了解析XML文档和XML字符串的功能。这使得在C++和不支持指针的语言...

    dom4j解析xml字符串

    // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...

    dom4j解析xml字符串实例

    dom4j解析xml字符串实例

    xml字符串解析

    在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...

    JAVA JAXB 解析XML嵌套子节点为字符串

    使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml &lt;text&gt;Some text here ...

    格式化xml字符串,并生成xml文件

    这些文件通常包含了处理XML数据的相关工具方法,可能包括读取XML文件、解析XML字符串、格式化XML以及生成新的XML文件等操作。 `XMLFileUtil.java`可能包含了一些与XML文件I/O相关的功能,比如读取XML文件到字符串,...

    android SAX解析String类型 XML 字符串

    接着,我们需要创建一个`XMLReader`对象并设置我们的处理器,然后使用`parse`方法解析XML字符串: ```java InputSource inputSource = new InputSource(new StringReader(xmlString)); XMLReader xmlReader = ...

    js的XML解析器 可以解析XMl文件和XML字符串

    例如,`DOMParser`对象可用于解析XML字符串: ```javascript var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlString, "text/xml"); ``` - **ActiveXObject(IE专属)**:在旧版的...

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    解析XML文件(字符串)的两种方法

    - **解析XML字符串**:使用`DocumentHelper.parseText`方法直接解析XML字符串,返回一个`Document`对象。 接下来的操作与使用`SAXReader`的方式类似,都是通过`Document`对象获取根元素、迭代子元素并提取所需的...

    将string类型xml字符串转为json字符串

    总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串并构建相应的JSON对象来完成的。这个过程通常需要借助特定的库,如Java中的`org.json`。理解XML和JSON的结构差异,以及如何利用这些库进行...

    jdom解析XML文件and把字符串解析成XML

    // 解析XML字符串 Document doc = builder.build(new StringReader(xml)); Element root = doc.getRootElement(); // 输出根元素 System.out.println("根元素: " + root.getName()); } } ``` 这段代码中,...

    xml解析和生成字符串、文档的实例

    解析XML文件的过程与解析XML字符串相似,只是需要读取文件而不是字符串。我们可以使用`FileReader`或`FileInputStream`替换`StringReader`。生成XML文件则涉及`OutputStream`或`Writer`,以将XML内容写入文件。以下...

    读取xml文件,解析字符串

    读取xml文件,解析字符串,详细的代码操作

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    xml格式的字符串转换成List

    1. **解析XML**:可以使用内置库或第三方库来解析XML字符串。在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。在.NET环境中,有...

    jdom解析xml字符串

    NULL 博文链接:https://songlitao.iteye.com/blog/2257789

Global site tag (gtag.js) - Google Analytics