2013-12-13 4 views
0

Я знаю, что это связано со многими вопросами, но я не мог найти пример, который использовал компоновку xml, такую ​​как my.Создание Xpath в java для выбора значения атрибута на основе другого значения атрибута

<product name="ANALYTICS" count="24" occurred_at_time="1386648300000"> 
    <user_type name="Unknown" count="24" occurred_at_time="1386648300000"> 
     <session_source name="Web" count="24" occurred_at_time="1386648300000"/> 
    </user_type> 
</product> 
<product name="CARSWELL" count="492" occurred_at_time="1386651900000"> 
    <user_type name="External" count="492" occurred_at_time="1386651900000"> 
     <session_source name="Web" count="492" occurred_at_time="1386651900000"/> 
    </user_type> 
    <user_type name="Internal" count="19" occurred_at_time="1386622200000"> 
     <session_source name="UNKNOWN" count="12" occurred_at_time="1386624300000" /> 
     <session_source name="Web" count="10" occurred_at_time="1386604200000" /> 
    </user_type> 
</product> 

Я перекручивание через файл свойств, который определяет, какие продукты мы заинтересованы в XML, и я с трудом создавая правильное выражение.

for (int j = 0; j < Products.length; j++) { 
    XPathFactory xPathfactory = XPathFactory.newInstance(); 
    XPath xpath = xPathfactory.newXPath(); 

    try { 
      XPathExpression expr = xpath.compile("product[@name=" + Products[j] + "]attribute::count"); 
      CompareNextWeb = expr.evaluate(doc); 
      System.out.println(CompareNextWeb); 

    } catch (XPathExpressionException ex) { 
      Logger.getLogger(NextReport.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

Так что я хочу, чтобы иметь возможность выбрать счет, и в будущем, occured_at_time, с этим выражением «продукт [@ имя =» + Продукты [J] + «] атрибут :: отсчет». На самом деле мне просто нужно знать, возможно ли это, учитывая обстоятельства, или мне нужно пойти по этому другому пути.

ответ

1

Вы хотите xpath.compile("product[@name='" + Products[j] + "']/attribute::count"); или xpath.compile("product[@name='" + Products[j] + "']/@count");.

+0

Отлично, спасибо! – Chad

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