У меня есть XML, как следует,XSLT - проверить узел является не существует или с помощью функции
<doc>
<meta-data>
<paper-name>ABC</paper-name>
<paper-type>fi</paper-type>
</meta-data>
<section>
<figure>fig1</figure>
<figure>fig2</figure>
</section>
</doc>
Мое требование, если <paper-type>
узел доступен в <meta-data>
изменения <figure>
узлов в <image>
узел.
Таким образом, вывод должен выглядеть,
<doc>
<meta-data>
<paper-name>ABC</paper-name>
<paper-type>fi</paper-type>
</meta-data>
<section>
<image>fig1</image>
<image>fig2</image>
</section>
</doc>
Я написал следующее XSL для выполнения этой задачи,
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:function name="abc:check-paper-type" as="xs:boolean">
<xsl:sequence select="root()//meta-data/paper-type"/>
</xsl:function>
<xsl:template match="figure[abc:check-paper-type()]">
<image>
<xsl:apply-templates/>
</image>
</xsl:template>
проверить <paper-type>
узел доступен в <meta-data>
Я написал функцию здесь по имени «чек-бумага типа. но работает не так, как ожидалось.
Любое предложение, как я могу организовать свою функцию для проверки, <paper-type>
имеется или нет?
Обратите внимание, что мне нужно изменить множество узлов, установив <paper-type>
узел или нет. Таким образом, будет важно проверить, существует или нет <paper-type>
с помощью функции.
это пример кода, и мне нужно изменить множество имен узлов, проверяя узел будет существовать или не. Таким образом, это будет более эффективно, если я могу использовать функцию для проверки наличия или нет. Приношу свои извинения за отсутствие деталей в оригинальном вопросе. –
sanjay
Посмотрите, поможет ли отредактированный ответ. –