Я следующий исходный XMLXSLT - заменить узел с деревом
<forms>
<x>
<y>
<x-component select="foobar" />
</y>
</x>
<component name="foobar">
<some>
<component>
<value>text</value>
</component>
</some>
</component>
</forms>
Я пытаюсь преобразовать его в следующем:
<?xml version="1.0" encoding="UTF-8"?>
<forms>
<x>
<y>
<component name="foobar">
<some>
<component>
<value>text</value>
</component>
</some>
</component>
</y>
</x>
</forms>
Мой файл XSL является
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="x-component">
<yoba>
<xsl:attribute name="z">
<xsl:value-of select="@select"/>
</xsl:attribute>
<xsl:apply-templates select="/forms/component[@[email protected]]/*" />
</yoba>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>
Как передать значение атрибута select
текущего n ода для этой линии (вместо Местозаполнитель):
<xsl:apply-templates select="/forms/component[@name=<PLACEHOLDER>]/*" />
Ваш XSLT выводит элемент ** yoba **, который не находится в вашем ожидаемом выходе. Это верно? –
Это было для отладки, я получил вывод с yoba, но xsl: apply-templates внутри yoba не отображался – Kerb