[英]XSLT: How to match (in template) two different elements
我有兩個不同的元素:“edge”和“containedEdge”,但對於這兩個元素,我需要對它們做同樣的工作。 我想對兩者使用一個模板。
匹配“邊緣或包含邊緣”的模板看起來如何?
XML 輸入:
<packagedElement xmi:type="uml:Activity" xmi:id="EAID_AC000001_2A09_4795_BBF6_189BCF2176FD" name="EA_Activity1" visibility="public">
<edge xmi:type="uml:ControlFlow" xmi:id="EAID_7178621A_9B6C_4fd5_9E5D_AFB31B6DEF24"/>
<subgroup xmi:type="uml:LoopNode" xmi:id="EAID_61782877_58D5_41e6_B4BA_3C79CC4ADCFF">
<containedEdge xmi:type="uml:ControlFlow" xmi:id="EAID_C43E5114_A121_4a58_948C_3F7865CDDE19"/>
<containedEdge xmi:type="uml:ControlFlow" xmi:id="EAID_1300F655_DD16_4303_BD5F_E3180B655DC4"/>
</subgroup>
<edge xmi:type="uml:ControlFlow" xmi:id="EAID_2612A8E5_CBC2_406d_B3F5_255C49DC728F"/>
<edge xmi:type="uml:ControlFlow" xmi:id="EAID_7F330DC1_68BA_48e2_BAE2_15DC5BCAC772"/>
</packagedElement>
我需要使用與此類似的模板,但我認為不應該使用“或”:
<xsl:for-each select="packagedElement/edge or packagedElement/subgroup/containedEdge">
<element geometry="SX=0;SY=0;EX=0;EY=0;Path=;" subject="EAID_CONNECTR{substring(@xmi:id, 14, 28)}" style=";Hidden=0;"/>
</xsl:for-each>
在選擇中使用聯合:
<xsl:for-each select="packagedElement/edge|packagedElement/subgroup/containedEdge">
<element geometry="SX=0;SY=0;EX=0;EY=0;Path=;" subject="EAID_CONNECTR{substring(@xmi:id, 14, 28)}" style=";Hidden=0;"/>
</xsl:for-each>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.