Obtenir un atsortingbut en utilisant XPath

Étant donné une structure XML comme celle-ci:

   Harry Potter 29.99   Learning XML 39.95   

Comment pourrais-je obtenir la valeur de lang (où lang est eng dans le titre du livre), pour le premier élément?

Comment pourrais-je obtenir la valeur de lang (où lang = eng dans le titre du livre), pour le premier élément?

Utiliser :

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

Cela signifie :

Sélectionnez l’atsortingbut lang de l’élément title qui est un enfant du premier enfant book de l’élément top du document XML.

Pour obtenir uniquement la valeur de chaîne de cet atsortingbut, utilisez la ssortingng() fonctions XPath standard ssortingng() :

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

Merci! Cela a résolu un problème similaire que j’avais avec un atsortingbut de données dans une div.

 
data I do not want

Utilisez ce xpath: //*[@id="prop_sample"]/@data-want

J’espère que ceci aide quelqu’un d’autre!

Vous pouvez essayer sous le modèle xPath,

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

Vous pouvez aussi l’obtenir par

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

bien que si vous utilisez XMLDOM avec JavaScript, vous pouvez coder quelque chose comme

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

et n1.text vous donnera la valeur "eng"

Voici l’extrait de la valeur d’atsortingbut de “lang” avec XPath et VTD-XML.

 import com.ximpleware.*; public class getAttrVal { public static void main(Ssortingng 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.evalXPathToSsortingng()); } } 

vous pouvez utiliser:

 (//@lang)[1] 

cela signifie que vous obtenez tous les nœuds d’atsortingbuts avec un nom égal à “lang” et obtenez le premier.

Si vous utilisez PostgreSQL, c’est le bon moyen de l’obtenir. Ceci est juste une hypothèse où, comme vous avez une colonne TITRE et PRIX de table de livre avec des données remplies. Voici la requête

 SELECT xpath('/bookstore/book/title/@lang', xmlforest(book.title AS title, book.price AS price), ARRAY[ARRAY[]::TEXT[]]) FROM book LIMIT 1;