2013-07-10 2 views
1

와 XML 문서의 속성을 검색 난 자바에 다음과 같은 방법이 있습니다자바와 XPath를

private static String getAttributValue(String attribute, String xmlResponseBody) { 

    String searchAttributeValue = ""; 
    try { 
     DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
     Document doc = docBuilder.parse(new InputSource(new StringReader(xmlResponseBody))); 
     XPathFactory xPathFactory = XPathFactory.newInstance(); 
     XPath xpath = xPathFactory.newXPath(); 
     try { 
      XPathExpression expr = xpath.compile("@" + attribute); 
      Object result = expr.evaluate(doc, XPathConstants.NODESET); 
      NodeList nodeList = (NodeList) result; 
      Node node = nodeList.item(0); // something wrong?? 
      searchAttributeValue = node.getTextContent(); 

     } catch (XPathExpressionException e) { 
      e.printStackTrace(); 
     } 
    } catch (ParserConfigurationException pce) { 
     pce.printStackTrace(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } catch (SAXException sae) { 
     sae.printStackTrace(); 
    } 
    return searchAttributeValue; 
} 

나는 XML 문서 (매개 변수 "xmlResponseBody")에 속성 (매개 변수 "속성")를 검색합니다. 이 작업을 해결하기 위해 XPath를 사용하고 싶습니다. 코드에서 "// something something wrong"라는 주석을 가지고 있는데 변수 노드는 null입니다. 어떻게해야합니까? 내 코드의 실수는 무엇입니까?

감사합니다. Marwief

답변

3

(또는 그 일부) 샘플 XML을 보지 않고이 대답하기 어려운,하지만 당신은 사용하여 속성을 검색 할 수 있습니다

xpath.compile("//@" + attribute) 

이 명명 된 속성 속성 내부 상황에 대한 검색을 의미합니다 노드 및 그 자손. 더 많은 정보를 얻으실 수 있습니다 here.