Dada uma estrutura XML como esta:
<?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>
Como eu poderia obter o valor de lang
(onde lang
está o eng
título do livro), para o primeiro elemento?
Respostas:
Use :
Isto significa :
Selecione o
lang
atributo do elemento title que é filho do primeirobook
filho do elemento superior do documento XML.Para obter apenas o valor da sequência deste atributo, use a função XPath padrão
string()
:fonte
lang
atributo. Se o atributo não contiver colchetes, eles não farão parte do resultado da avaliação da expressão XPath. Meu palpite é que eles foram adicionados por uma ferramenta (inadequada) que você está usando./*/book[1]/title/@lang
seleciona um conjunto de nós de 0 ou mais nós de atributo, enquanto a expressão XPath,string(/*/book[1]/title/@lang)
quando avaliada, produz o valor da cadeia de caracteres deste conjunto de nós - e este é o valor da cadeia de caracteres do primeiro (na ordem dos documentos) nó deste conjunto de nós.lang="eng"
é apenas uma das muitas representações textuais de um nó de atributo que tem um nome "lang", não pertence a um espaço de nomes, e tem um valor de string do "eng" stringObrigado! Isso resolveu um problema semelhante que tive com um atributo de dados dentro de uma div.
Use este xpath:
//*[@id="prop_sample"]/@data-want
Espero que isso ajude alguém!
fonte
Você pode tentar abaixo do padrão xPath,
fonte
Você também pode obtê-lo
embora, se você estiver usando XMLDOM com JavaScript, possa codificar algo como
e
n1.text
lhe dará o valor"eng"
fonte
você pode usar:
isso significa que você obtém todos os nós de atributos com nome igual a "lang" e obtém o primeiro.
fonte
Aqui está o trecho de como obter o valor do atributo "lang" com XPath e VTD-XML.
fonte
Se você estiver usando o PostgreSQL, este é o caminho certo para obtê-lo. Essa é apenas uma suposição em que, como você tem uma coluna TITLE e PRICE da tabela de livros com dados preenchidos. Aqui está a consulta
fonte