Saya perlu mendapatkan simpul orangtua untuk simpul anak title 50
Saat ini saya hanya menggunakan
//*[title="50"]
Bagaimana saya bisa mendapatkan orang tuanya? Hasilnya harus berupa store
simpul.
<?xml version="1.0" encoding="utf-8"?>
<d:data xmlns:d="defiant-namespace" d:mi="23">
<store d:mi="22">
<book price="12.99" d:price="Number" d:mi="4">
<title d:constr="String" d:mi="1">Sword of Honour</title>
<category d:constr="String" d:mi="2">fiction</category>
<author d:constr="String" d:mi="3">Evelyn Waugh</author>
</book>
<book price="8.99" d:price="Number" d:mi="9">
<title d:constr="String" d:mi="5">Moby Dick</title>
<category d:constr="String" d:mi="6">fiction</category>
<author d:constr="String" d:mi="7">Herman Melville</author>
<isbn d:constr="String" d:mi="8">0-553-21311-3</isbn>
</book>
<book price="8.95" d:price="Number" d:mi="13">
<title d:constr="String" d:mi="10">50</title>
<category d:constr="String" d:mi="11">reference</category>
<author d:constr="String" d:mi="12">Nigel Rees</author>
</book>
<book price="22.99" d:price="Number" d:mi="18">
<title d:constr="String" d:mi="14">The Lord of the Rings</title>
<category d:constr="String" d:mi="15">fiction</category>
<author d:constr="String" d:mi="16">J. R. R. Tolkien</author>
<isbn d:constr="String" d:mi="17">0-395-19395-8</isbn>
</book>
<bicycle price="19.95" d:price="Number" d:mi="21">
<brand d:constr="String" d:mi="19">Cannondale</brand>
<color d:constr="String" d:mi="20">red</color>
</bicycle>
</store>
</d:data>
parent::*
sintaks disingkat..
(misalnya://*[title="50"]/..
) atau predikat bersarang (contoh://*[*[title="50"]]
)parent::node()
yang sesuai dengan jalan pintas..
dan lebih baik menurut saya. Bahkanparent::*
terbatas pada jenis simpul utama sumbu yang dalam banyak kasus tidak menjadi masalah..xpath('..')
atauxpath('parent::node()')
bicycle
tetapi induk dari induk itustore
? Apakah itu naik? Jika tidak, apakah ada metode untuk naik dalam kasus seperti itu dan kembaliNone
jika tidak ada orang tua seperti itu?Sama seperti alternatif, Anda bisa menggunakannya
ancestor
.Ini lebih kuat daripada
parent
karena bisa mendapatkan kakek atau nenek buyutsumber
Anda dapat menggunakan dua titik di akhir ekspresi juga. Lihat contoh ini:
sumber
Baru, jawaban yang ditingkatkan untuk pertanyaan lama, yang sering diajukan ...
Gunakan predikat daripada sumbu
parent::
atauancestor::
Sebagian besar jawaban di sini pilih elemen
title
dan kemudian lintasi hingga elemen induk atau leluhur (store
) yang ditargetkan . Pendekatan yang lebih sederhana dan langsung adalah memilih elemen induk atau leluhur langsung di tempat pertama, meniadakan kebutuhan untuk melintasi keparent::
atauancestor::
sumbu:Haruskah elemen intervensi bervariasi dalam nama:
Atau, dalam nama dan kedalaman:
sumber
Ini berfungsi dalam kasus saya. Saya harap Anda bisa mengekstrak makna darinya.
sumber