Answer the question
In order to leave comments, you need to log in
How to update data in xml file based on another xml?
Good afternoon!
I need to develop an XSLT transformation that will update the data in the formats.xml file (nodes name, shortName, type, knd, version) according to the data in the classification.xml file. In this case, let the formats.xml file act as the input file for the transformation, and let the classification.xml file be loaded using the document() function.
I tried to implement it through choose, but it doesn't work - it loops and copies everything without stopping.
I do it like this:
<xsl:template name="format">
<xsl:for-each select="format">
<xsl:call-template name="replace" />
</xsl:for-each>
</xsl:template>
<xsl:template name="replace" match="/formats/format">
<xsl:param name="name" />
<xsl:choose>
<xsl:when test="name!=document('classification.xml')/classification/group/format/@name">
<xsl:copy-of select="../format" />
</xsl:when>
</xsl:choose>
</xsl:template>
<formats>
<format gfv="105702" fileName="new_105702_4.00001">
<name>2-НДФЛ</name>
<shortName>2 НДФЛ</shortName>
<periodBegin>01.01.2006</periodBegin>
<periodEnd>31.12.2009</periodEnd>
<type>1</type>
<knd>1151078</knd>
<version>4.00001</version>
<isStoredInDataTree>true</isStoredInDataTree>
<isCheckedByDom>false</isCheckedByDom>
<orgTypes>1111</orgTypes>
</format>
<format gfv="101508" fileName="new_1151020_5.05">
<name>Налоговая декларация по налогу на доходы физических лиц (форма 3-НДФЛ)</name>
<shortName>3-НДФЛ</shortName>
<periodBegin>01.01.2009</periodBegin>
<periodEnd>31.12.2009</periodEnd>
<type>1</type>
<knd>1151020</knd>
<version>5.05</version>
<isStoredInDataTree>false</isStoredInDataTree>
<isCheckedByDom>false</isCheckedByDom>
<orgTypes>1111</orgTypes>
</format>
</formats>
<classification xmlns:fp="format-properties">
<group id="1" name="Налоговая отчетность">
<format id="1" fp:КНД="1110005" shortName="Сбор за пользование объектами водных биологических ресурсов" name="Сведения о полученной лицензии на пользование объектами водных биологических ресурсов, суммах сбора за пользование объектами водных биологических ресурсов, подлежащих уплате в виде разового и регулярных взносов" periods="1" form-modifiers="1">
<variant id="1" fp:ВерФОтч="3.00000" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
</format>
<format id="2" fp:КНД="1110006" shortName="Сбор за пользование объектами животного мира" name="Сведения о полученной лицензии (разрешении) на пользование объектами животного мира, суммах сбора за пользование объектами животного мира, подлежащих уплате, и суммах фактического сбора" periods="1" form-modifiers="1">
<variant id="1" fp:ВерФОтч="3.00000" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
</format>
<format id="3" fp:КНД="1110011" shortName="Сбор за пользование объектами водных биологических ресурсов" name="Сведения о полученных лицензиях (разрешениях) на пользование объектами водных биологических ресурсов, суммах сбора за пользование объектами водных биологических ресурсов, подлежащих уплате в виде разового и регулярных взносов" periods="1" form-modifiers="1">
<variant id="1" fp:ВерФОтч="3.00001" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
</format>
<format id="4" fp:КНД="1110012" shortName="Сбор за пользование объектами животного мира" name="Сведения о полученных лицензиях (разрешениях) на пользование объектами животного мира, суммах сбора за пользование объектами животного мира, подлежащих уплате, и суммах фактически уплаченного сбора" periods="1" form-modifiers="1">
<variant id="1" fp:ВерФОтч="3.00001" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
</format>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question