É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;