XPath для конкретного тега - PullRequest
       1

XPath для конкретного тега

0 голосов
/ 18 декабря 2018

Я пытаюсь получить значение тега "факс" (см. Пример XML ниже), используя XPath в Java ...

Я решил попробовать получить узлы для "бизнеса" и пройти черезотладчик, чтобы увидеть, вижу ли я теги ... не работает ... фрагмент кода, который я использую:

String path = 
"/locationDetailResponse/locationInfo/locationBusinessList/business"

XPath xPath = XPathFactory.newInstance().newXPath();
Element userElement = (Element) xPath.evaluate(path, documentObject,
            XPathConstants.NODE);

documentObject содержит объект org.w3c.dom.Document

<location>
   <locationInfo>
     <warehouseId>99</warehouseId>

   <nearByLocations>
    <location>
     <name>Morganton, NC</name>
     <url>morganton-nc-hvac</url>
   </location>

   <location>
    <name>Statesville, NC</name>
    <url>statesville-nc-plumbing</url>
   </location>
  </nearByLocations>

  <locationBusinessList>
   <business>
    <id>123</id>
    <fax>(800) 555-1212</fax>
   </business>

   <business>
     <id>456</id>
    <fax>(800) 666-2323</fax>
   </business>
 </locationBusinessList>

</locationInfo>
</location>

Какие-нибудь идеи по поводу правильного выражения XPath, которое я должен использовать?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете попробовать изменить / на // в начале строки,

или использовать local-name :

//*[local-name()='location']/*[local-name()='locationInfo']/*[local-name()='locationBusinessList']/*[local-name()='business']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...