Получение атрибута с использованием XPath

Учитывая структуру XML, например:

   Harry Potter 29.99   Learning XML 39.95   

Как я могу получить значение lang (где langeng в названии книги), для первого элемента?

Как я мог получить значение lang (где lang = eng в названии книги), для первого элемента?

Использование :

 /*/book[1]/title/@lang 

Это означает :

Выберите атрибут lang элемента title, который является дочерним элементом первого book дочернего элемента верхнего элемента XML-документа.

Чтобы получить только строковое значение этого атрибута, используйте стандартную функциональную string() XPath string() :

 string(/*/book[1]/title/@lang) 

Благодаря! Это позволило решить аналогичную проблему с атрибутом данных внутри Div.

 
data I do not want

Используйте этот xpath: //*[@id="prop_sample"]/@data-want

Надеюсь, это поможет кому-то еще!

Вы можете попробовать шаблон xPath,

  XPathExpression expr = xPath.compile("/bookstore/book/title[@lang='eng']") 

Вы также можете получить его

 string(//bookstore/book[1]/title/@lang) string(//bookstore/book[2]/title/@lang) 

хотя, если вы используете XMLDOM с JavaScript, вы можете кодировать что-то вроде

 var n1 = uXmlDoc.selectSingleNode("//bookstore/book[1]/title/@lang"); 

и n1.text даст вам значение "eng"

Вот fragment получения значения атрибута «lang» с XPath и VTD-XML.

 import com.ximpleware.*; public class getAttrVal { public static void main(String s[]) throws VTDException{ VTDGen vg = new VTDGen(); if (!vg.parseFile("input.xml", false)){ return ; } VTDNav vn = vg.getNav(); AutoPilot ap = new AutoPilot(vn); ap.selectXPath("/bookstore/book/title/@lang"); System.out.println(" lang's value is ===>"+ap.evalXPathToString()); } } 

вы можете использовать:

 (//@lang)[1] 

это означает, что вы получаете все атрибуты узлов с именем, равным «lang», и получите первый.

Если вы используете PostgreSQL, это правильный способ получить его. Это просто предположение, когда у вас есть таблица книг TITLE и PRICE с заполненными данными. Вот запрос

 SELECT xpath('/bookstore/book/title/@lang', xmlforest(book.title AS title, book.price AS price), ARRAY[ARRAY[]::TEXT[]]) FROM book LIMIT 1; 
  • Как вы выводите текущий путь элемента в XSLT?
  • Как передать параметр переменной в выражение XPath?
  • Текущий узел или узел контекста в XSLT / XPath?
  • XSLT: как преобразовать XML-узел в строку
  • как использовать XPath с XDocument?
  • Как обновить XML с помощью XPath и Java
  • XPath в XML-документе с пространством имен
  • XPathSelectElement всегда возвращает null
  • Создать XML-узлы на основе XPath?
  • XSLT получает последний элемент
  • Использование функций xpath в верхнем и нижнем регистре в среде IDE seleniumа
  • Давайте будем гением компьютера.