2012-05-29 74 views
0
<Details><propname key="workorderid">799</propname> 

如何從workorderid使用SAXParing獲取799? 當我使用此代碼我得到「workorderid」,而不是workorderid獲取SAX解析器屬性

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

回答

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

//這裏設置一個標誌和的endElement()獲取與您的localName(PROPNAME) 字符串workid = attributes.getValue( 「密鑰」)相關聯的值;

我向您提供的代碼嘗試瞭解和自定義您的方式。

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. 
    } 

} 

可能在某處錯了我很着急。如果有幫助欣賞。

+0

謝謝配合。 –

0

的價值在propname的有屬性Keyworkorderid這是正確的。 您需要獲取價值主題名稱。

//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(); 
     } 
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. 
}