У меня есть файл xml
, который в основном представляет собой данные статьи.Я хочу преобразовать его, используя xslt
.
Мой вопрос: как мне обработать элемент через xslt где угодно, на любой глубине в документе xml?
Мои исследования привели меня к поиску шаблона идентификации, но моя попытка использовать его оказалась безрезультатной.Вот кое-что, что я попробовал:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="em">
blabla
</xsl:template>
Но он не заменил содержимое em
на blabla.
Я также обнаружил, что проверка элемента в любом месте - это не то, что можно сделатьсо схемой xsd
.Но я надеюсь, что ответ будет другим для xslt
.
Минимальный рабочий пример:
<?xml version="1.0"?>
<doc>
<foo>text <em>italics</em> anything</foo>
<tag>text <foo><em>italics</em> stuff</foo></tag>
</doc>
Я бы хотел, например, заменить <em>foo</em>
на <it>foo</it>
или \emph{foo}
(конечно, делая другие преобразования в документе).