Étant donné une structure XML comme celle-ci:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
Comment pourrais-je obtenir la valeur de lang
(où lang
est eng
dans le titre du livre), pour le premier élément?
Réponses:
Utilisation :
Cela signifie :
Sélectionnez l'
lang
attribut de l'élément title qui est un enfant du premierbook
enfant de l'élément supérieur du document XML.Pour obtenir uniquement la valeur de chaîne de cet attribut, utilisez la fonction XPath standard
string()
:la source
lang
attribut. Si l'attribut ne contient pas de crochets, ils ne feront pas partie du résultat de l'évaluation de l'expression XPath. Je suppose que ceux-ci sont ajoutés par un outil (inapproprié) que vous utilisez./*/book[1]/title/@lang
sélectionne un ensemble de nœuds de 0 nœud d'attributs ou plus, tandis que l'expression XPathstring(/*/book[1]/title/@lang)
lorsqu'elle est évaluée, produit la valeur de chaîne de cet ensemble de nœuds - et il s'agit de la valeur de chaîne du premier (dans l'ordre du document) nœud de cet ensemble de nœuds.lang="eng"
n'est qu'une des nombreuses représentations textuelles d'un nœud d'attribut qui a un nom "lang", n'appartient pas à un espace de noms et a une valeur de chaîne la chaîne "eng"Merci! Cela a résolu un problème similaire que j'avais avec un attribut de données dans une Div.
Utilisez ce xpath:
//*[@id="prop_sample"]/@data-want
J'espère que ceci aide quelqu'un d'autre!
la source
Vous pouvez essayer ci-dessous le modèle xPath,
la source
Vous pouvez également l'obtenir en
bien que si vous utilisez XMLDOM avec JavaScript, vous pouvez coder quelque chose comme
et
n1.text
vous donnera la valeur"eng"
la source
vous pouvez utiliser:
cela signifie que vous obtenez tous les nœuds d'attributs avec un nom égal à "lang" et obtenez le premier.
la source
Voici l'extrait pour obtenir la valeur d'attribut "lang" avec XPath et VTD-XML.
la source
Si vous utilisez PostgreSQL, c'est la bonne façon de l'obtenir. Ceci est juste une hypothèse où, comme vous avez une colonne TITLE et PRICE de table de livre avec des données remplies. Voici la requête
la source