簡體   English   中英

XSLT:如何匹配(在模板中)兩個不同的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM