У меня есть огромный xml, в котором мне нужно найти сумму для оплаты и соответствующий идентификатор счета.
Я только что понял, как выбрать правильную сумму (расположенную в 2 ячейках от ячейки с CellText = 'amount'). Я могу распечатать это, и это работает.
Теперь мне также нужно распечатать соответствующий billID. Как я могу это сделать?
Это пример типа XML, который я использую:
<Section>
<Item>
<TableRow>
<Cell>
<RowNo>4</RowNo>
<CellColNo>1</CellColNo>
<CellText>amount</CellText>
<CellAttribute/>
</Cell>
<Cell>
<RowNo>4</RowNo>
<CellColNo>2</CellColNo>
<CellText/>
<CellAttribute/>
</Cell>
<Cell>
<RowNo>4</RowNo>
<CellColNo>3</CellColNo>
<CellText>138</CellText>
<CellAttribute/>
</Cell>
</TableRow>
</Item>
<Item>
<BillID>123456</BillID>
</Item>
</Section>
<Section>
...
</Section>
это мой код, где мне нужно добавить, что идентификатор счета также должен быть напечатан:
XPath xPath = XPathFactory.newInstance().newXPath();
String exprString = "//TableRow/Cell[CellText='amount:']/following-sibling::cell[2]CellText/text()";
XPathExpression expr = xPath.compile(exprString);
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int j = 0; j < nodes.getLength(); j++) {
System.out.println(nodes.item(j).getNodeValue());
}
(Я знаю, что XML не имеет смысла, это просто для иллюстрации формата. Также есть несколько «Разделов», поэтому мне нужно убедиться, что я выбрал правильный!). Заранее спасибо!