2013-05-31 4 views
1

Привет у меня есть этот XMLява поиск дом XML

<?xml version="1.0" encoding="utf-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="new2.xsl"?> 
<patients> 
    <patient> 
    <stoixeia_astheni> 
     <arithmos_eksetasis>1</arithmos_eksetasis> 
     <imerominia_eksetasis>11/12/2005</imerominia_eksetasis> 
     <amka>14385</amka> 

    </stoixeia_astheni> 
    <stoixeia_epikoinonias> 
     <dieuthinsi>Μητσοπούλου 20</dieuthinsi> 

    </stoixeia_epikoinonias> 
    <loipa_stoixeia> 
     <fylo>Aρρεν</fylo> 

    </loipa_stoixeia> 
    </patient> 
    <patient> 
    same code here 
    </patient> 

</patients> 

и я хочу, чтобы искать это по AMKA стоимости. я попытался это:

Document doc = docBuilder.parse(filepath); 
      NodeList root= doc.getDocumentElement().getChildNodes(); 
      for(int i=0; i<root.getLength(); i++){ 
       if(root.item(i).getChildNodes().item(0).getChildNodes().item(2).getNodeValue()=="14385"){ 
        pw.println("Gataki<br>"); 
       } 
      } 

но ошибка при выполнении

Любая помощь будет полезна.

+0

Используйте '.equals()' вместо '' == для сравнения строк. Также изучение XPath может помочь вам здесь. – Zutty

+0

@ Zutty Вы правы, но это не единственная ошибка. – user2428997

+0

взгляните на этот учебник по xpath http://www.w3schools.com/xpath/xpath_syntax.asp – fGo

ответ

2

Используйте этот XPath

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
Document doc = builder.parse(<uri_as_string>); 
XPathFactory xPathfactory = XPathFactory.newInstance(); 
XPath xpath = xPathfactory.newXPath(); 
XPathExpression expr = xpath.compile("/patients/patient/stoixeia_astheni/amka/text()"); 
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET); 

Только в случае takke посмотреть на этот XPath syntaxis

 
/ Selects from the root node 
// Selects nodes in the document from the current node that match the selection no matter where they are 
. Selects the current node 
.. Selects the parent of the current node 
@ Selects attributes 
+0

ok, и который импортирует его в качестве необходимого? – user2428997

+0

Я сделал небольшую модификацию в xpath, чтобы вы могли напрямую получить значение узла. По импорту я думаю, что это то, что вы можете сделать сами. Вы можете распечатать списки узлов, подобные этому: for (int i = 0; i fGo

Смежные вопросы