获取SAX Parser属性

时间:2012-05-29 07:53:21

标签: java android xml

<Details><propname key="workorderid">799</propname>

如何从使用SAXParing的workorderid获得799? 当我使用这个代码时,我得到“workorderid”但不是workorderid的价值

if(localName.equals("propname")){
String workid = attributes.getValue("key");

3 个答案:

答案 0 :(得分:0)

propname Key属性workorderid,其值 //Provide you tagname which is propname NodeList nl = ele.getElementsByTagName(tagName); if(nl != null && nl.getLength() > 0) { Element el = (Element)nl.item(0); textVal = el.getFirstChild().getNodeValue(); } 是正确的。 你需要得到值propname。

{{1}}

答案 1 :(得分:0)

if(localName.equals("propname")){

//在这里设置一个标志,在endElement()中获取与你的localname相关联的值(propname)     String workid = attributes.getValue(“key”);

我正在为您提供代码,尝试以您的方式理解和自定义。

public class ExampleHandler extends DefaultHandler {

    private String item;
    private boolean inItem = false;

    private StringBuilder content;

    public ExampleHandler() {
        items = new Items();
        content = new StringBuilder();
    }

    public void startElement(String uri, String localName, String qName, 
            Attributes atts) throws SAXException {
        content = new StringBuilder();
        if(localName.equalsIgnoreCase("propname")) {
            inItem = true;
        } else attributes.getValue("key");

    }

    public void endElement(String uri, String localName, String qName) 
            throws SAXException {
        if(localName.equalsIgnoreCase("propname")) {
            if(inItem) {
                item = (content.toString());
              }
    }

    public void characters(char[] ch, int start, int length) 
            throws SAXException {
        content.append(ch, start, length);
    }

    public void endDocument() throws SAXException {
        // you can do something here for example send
        // the Channel object somewhere or whatever.
    }

}
可能在某个地方错了,我赶时间。如果有帮助欣赏。

答案 2 :(得分:0)

以下将保存节点的值。

public void characters(char[] ch, int start, int length) throws SAXException {
        tempVal = new String(ch,start,length);
    }

在事件处理程序方法中,您需要像这样:

if(qName.equals("propname")) {
   System.out.println(" node value " + tempVal); // node value
   String attr = attributes.getValue("key") ; // will return attribute value for the propname node.
}