มีวิธีระบุบรรพบุรุษที่ต่ำที่สุดใน XPath หรือไม่?


person user1424739    schedule 30.07.2019    source แหล่งที่มา
comment
ไม่แน่ใจว่าฉันเข้าใจ บรรพบุรุษที่ต่ำที่สุดจะเป็น root / เสมอ   -  person PaulProgrammer    schedule 31.07.2019
comment
@PaulProgrammer ฉันเชื่อว่าส่วนใหญ่จะถือว่า / เป็นบรรพบุรุษที่สูงที่สุดและ parent::node() เป็นบรรพบุรุษที่ต่ำที่สุด (ต้นไม้ในวิทยาการคอมพิวเตอร์มักวาดโดยมีรากสูงกว่าใบ นอกจากนี้ การจัดลำดับเอกสารยังเน้นย้ำแนวคิดที่ว่าด้านล่างของเอกสารอยู่ต่ำกว่าด้านบน)   -  person kjhughes    schedule 31.07.2019
comment
ที่ลึกที่สุด ใกล้ที่สุด ฯลฯ...   -  person PaulProgrammer    schedule 31.07.2019


คำตอบ (1)


บรรพบุรุษที่ต่ำที่สุด จะเป็นผู้ปกครอง ซึ่งกำหนดโดย .. หรือ parent::node()

บรรพบุรุษสูงสุด จะเป็นโหนดราก ซึ่งกำหนดโดย /; หรือถ้าคุณต้องการองค์ประกอบบรรพบุรุษสูงสุด: /*

ดูเพิ่มเติมที่ อะไรคือความแตกต่างระหว่างโหนดรูท องค์ประกอบรูท และองค์ประกอบเอกสารใน XML

โปรดทราบว่าหากคุณต้องการเลือกบรรพบุรุษที่ต่ำที่สุดที่ตรงกับภาคแสดง ให้เติม [1] ต่อท้ายภาคบรรพบุรุษของภาคแสดงโดยเรียงลำดับขึ้นจากจุดเริ่มต้น ไม่ใช่ลงจากราก ตัวอย่างเช่น,

//e[@id="e1"]/ancestor::*[@class][1]

จะเลือกบรรพบุรุษต่ำสุดขององค์ประกอบ e1 e ที่มีแอตทริบิวต์ @class

person kjhughes    schedule 30.07.2019