Я хочу прочитать XML-данные с помощью XPath в Java, поэтому из собранной мной информации я не могу проанализировать XML в соответствии с моими требованиями.
вот что я хочу сделать:
Получить XML-файл из Интернета по его URL, затем использовать XPath для его синтаксического анализа, я хочу создать в нем два метода. Во-первых, я ввожу идентификатор атрибута определенного узла и получаю в результате все дочерние узлы, а во-вторых, предположим, я просто хочу получить только определенное значение дочернего узла
В приведенном выше примере я хочу прочитать все элементы, если я выполняю поиск через @name, а также одну функцию, в которой я просто хочу, чтобы URL из @name 'Javascript' возвращал только один элемент узла.
Затем вы вызываете expr.evaluate(), передавая документ, определенный в этом коде, и тип возвращаемого значения, который вы ожидаете, и приводите результат к объектному типу результата.
Если вам нужна помощь с конкретными выражениями XPath, вам, вероятно, следует задать ее в виде отдельных вопросов (если только это не был ваш вопрос в первую очередь - я понял, что ваш вопрос заключается в том, как использовать API в Java).
Редактировать: (Ответ на комментарий): Это выражение XPath предоставит вам текст первого элемента URL в PowerBuilder:
/howto/topic[@name='PowerBuilder']/url/text()
Это даст вам второй:
/howto/topic[@name='PowerBuilder']/url[2]/text()
Вы получите это с помощью этого кода:
expr.evaluate(doc, XPathConstants.STRING);
Если вы не знаете, сколько URL-адресов находится в данном узле, то вам лучше сделать что-то вроде этого:
// normalize text representation doc.getDocumentElement().normalize(); System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName());
NodeListlistOfBooks= doc.getElementsByTagName("book"); inttotalBooks= listOfBooks.getLength(); System.out.println("Total no of books : " + totalBooks);