Tôi có một tài liệu trông giống nhưTôi có thể xây dựng truy vấn XPath động này trong XSLT không?
<root>
<element>
<subelement1 />
<subelement2 />
</element>
<element>
<subelement2 />
<subelement1 />
</element>
</root>
Trong tấm XSLT của tôi trong bối cảnh /element[2]/[someNode]
Tôi muốn để có được một số đại diện cho khoảng cách /element[1]/[someNode]
(ví dụ, số lượng anh chị em trước của /element1/[someNode]
). Ví dụ: trong ngữ cảnh của /element[2]/subelement1
Tôi muốn có một số cách để lấy số 2, khoảng cách từ /element[1]
đến /element[1]/subelement2
. Tôi chỉ cần khoảng cách của tên nút đã cho từ phiên bản đầu tiên của <element>
.
trực giác tôi nghĩ rằng tôi có thể xây dựng này như
<xsl:variable name="nodename" select="name()" />
<xsl:value-of select="/element[1]/$nodename/preceding-sibling::*" />
nhưng tiếc là tờ này không biên dịch. Là những gì tôi đang cố gắng để đạt được có thể trong XSLT?
dụ của bạn có vẻ không nhất quán: trong ngữ cảnh của '/ element [2]/[someNode]' bạn muốn tìm '/ element [1]/[someNode]' với ví dụ trong '/ element [2]/subelement1' bạn muốn tìm khoảng cách từ '/ element [1]' đến '/ element [1]/subelement 2' - như vậy là [someNode] ở đây subelement2 hoặc subelement1? –
Xem thêm http://stackoverflow.com/questions/4630023/dynamic-xpath-in-xslt – Vadzim