我正在使用一個內容管理系統,該系統允許根據 XPath 規則放置元素。這是一個簡化的示例:
<...>
<chapter>
<node2>
<step tool="pencil"></img>
</node2>
<node3>
<node4>
<step tool="screwdriver"></img>
</node4>
</node3>
</chapter>
</...>
我試圖在本章的開頭放置一個工具箱。該工具箱應包含所描述程序所需的所有工具,例如鉛筆和螺絲刀。為此,我將所有可能的工具圖示放在工具箱中,并隱藏/顯示規則所需的圖示。
這條規則是我的問題。章節的結構可能會有所不同。示例:對于鉛筆,我需要知道當前章節下方的任何@tool 是否具有“鉛筆”值。內部的結構可能并且會有所不同。但是,只能包含@tool。
到目前為止我做了什么:
boolean(descendant::step[1]/@tool = 'pencil')
這適用于給定的示例。但當然,一旦“鉛筆”不再是第一個 @tool 的值,它就會開始失敗。如果有人更改檔案,就會發生這種情況。
我讀過通配符,但是
boolean(descendant::step[*]/@tool = 'pencil')
回傳 false,例如鉛筆圖示保持隱藏狀態。據我了解,這應該選擇了我當前節點的后代,并檢查它是否具有屬性@tool,其值為“鉛筆”。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
如果您不關心位置,則洗掉指定第一個的謂詞。
任何具有鉛筆的后代step元素:@tool
boolean(descendant::step/@tool = 'pencil')
*任何具有@tool鉛筆的后代元素:
boolean(descendant::*/@tool = 'pencil')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/522330.html
上一篇:如何為視圖設定域[Odoo15]
