на вход подается документ вида:
<a_1>
<a_n>
<id>42</id>
<b_1>
<b_n>..</b_n>
</b_1>
</a_n>
</a_1>
если значение ID=42 то, выходной документ должен быть такой
<a_1>
<a_n>
<id>42</id>
<b_1>
<ADDING>Hello, World!!!</ADDING>
<b_n>..</b_n>
</b_1>
</a_n>
</a_1>
в случае других значений ID документ должен остаться неизменным.
Надеюсь на вашу помощь. Заранее спасибо всем откликнувшимся!
Здравствуйте, lkv512, Вы писали:
L>на вход подается документ вида:
L>L><a_1>
L> <a_n>
L> <id>42</id>
L> <b_1>
L> <b_n>..</b_n>
L> </b_1>
L> </a_n>
L></a_1>
L>
L>если значение ID=42 то, выходной документ должен быть такой
L>L><a_1>
L> <a_n>
L> <id>42</id>
L> <b_1>
L> <ADDING>Hello, World!!!</ADDING>
L> <b_n>..</b_n>
L> </b_1>
L> </a_n>
L></a_1>
L>
L>в случае других значений ID документ должен остаться неизменным.
L>Надеюсь на вашу помощь. Заранее спасибо всем откликнувшимся!
L>
L>
Вот так примерно
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<xsl:output method="xml" encoding="windows-1251" indent="no"/>
<xsl:template match="/ | @* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="a_n[id = '42']/b_1">
<b_1>
<ADDING>Hello, World!!!</ADDING>
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</b_1>
</xsl:template>
</xsl:stylesheet>
Здравствуйте, Other Sam!
Спасибо, очень похоже на то что надо! Только теперь как избавиться от лишнего b_1?!
Получается
<a_1>
<a_n>
<id>42</id>
<b_1><ADDING>Hello, World!!!</ADDING><b_1>
<b_n>..</b_n>
</b_1></b_1>
</a_n>
</a_1>
А надо
<a_1>
<a_n>
<id>42</id>
<b_1>
<ADDING>Hello, World!!!</ADDING>
<b_n>..</b_n>
</b_1>
</a_n>
</a_1>
Здравствуйте, lkv512, Вы писали:
L>Спасибо, очень похоже на то что надо! Только теперь как избавиться от лишнего b_1?!
А так?
<xsl:template match="a_n[id = '42']/b_1">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<ADDING>Hello, World!!!</ADDING>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
... << RSDN@Home 1.1.4 stable rev. 510>>