VTD-XML не возвращает правильное значение, как я могу изменить запрос, чтобы получить правильный результат? - PullRequest
0 голосов
/ 29 июня 2019

Я использую следующую функцию для анализа xml с использованием VTD-XML:

final AutoPilot ap = new AutoPilot(vtdNav);
ap.selectXPath(path);
int i = -1;
/** evalXPath returns -1 if no new node is present */
while ((i =  ap.evalXPath()) != -1) {
     extractedValues.add(vtdNav.toString(i+1));
}
/** Reset the XPath */
ap.resetXPath();

Но когда я пытаюсь сделать запрос:

<actualUnitCost>
  <chargeOrAllowance>CHARGE</chargeOrAllowance>
  <monetaryAmount currencyISOCode="USD">17.08</monetaryAmount>
</actualUnitCost>

используя путь: / ActualUnitCost / MONETARYAMOUNT это дает мне значение как currencyISOCode вместо 17.08. Как я могу изменить запрос, чтобы получить желаемый результат?

Я пробовал / actualUnitCost / financialAmount / text (), но это не дает правильного ответа.

1 Ответ

0 голосов
/ 03 июля 2019

Я думаю, что это правильное поведение. Если вы попробуете / actualUnitCost / financialAmount / text (), он даст вам текстовый узел.

Дайте мне знать, если есть какие-либо вопросы.

...