XSLT / Xpath: сопоставление нескольких элементов с избыточными стартерами Xpath - PullRequest
0 голосов
/ 08 октября 2018

У меня есть XML, который выглядит следующим образом:

<parent>
    <child1/>
    <child2/>
    <child3/>
    <child4/>
    <child5/>
    <child6/>
</parent>

И у меня есть шаблон, который соответствует только конкретным детям, выглядящим так:

<xsl:template match="parent/child1|parent/child4|parent/child6/>

Есть ли способ написатьтег «родитель» только один раз, а затем написать теги «потомок» в упрощенном выражении ведьма будет выглядеть следующим образом?

<xsl:template match="parent/(child1|child4|child6)"/>

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

В этом конкретном примере вы могли бы просто написать это

 <xsl:template match="child1|child4|child6"/>

Вам нужно будет беспокоиться только о добавлении parent, если бы в XML были другие элементы child1 с другим родительским элементом, который вы не указалине хочу удалять.Если бы это было не так, вы могли бы вместо этого написать ...

<xsl:template match="(child1|child4|child6)[parent::parent]"/>

РЕДАКТИРОВАТЬ: Как упоминалось в комментариях, это работает только в XSLT 3.0 и выше.

0 голосов
/ 08 октября 2018

можно попробовать

<xsl:template match="parent/*[self::child1 or self::child4 or self::child6]"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...