Может ли кто-нибудь помочь мне получить правильный Xpath для соответствующего преобразования через xslt??
Поскольку я пытаюсь преобразовать input.xml, используя xslt через xpath (document(input.xml)//track)
, чтобы получить желаемый результат, как указано ниже.
введите xml: как указано ниже
<mergingTracksBreakdownStructure>
<track id="10">
<mergedTrack id="10"/>
<mergedTrack id="11"/>
<mergedTrack id="12"/>
<track id="13">
<mergedTrack id="13"/>
<mergedTrack id="14"/>
<track id="15">
<mergedTrack id="15"/>
<mergedTrack id="16"/>
</track>
</track>
</track>
<track id="27">
<mergedTrack id="27"/>
</track>
<track id="30">
<mergedTrack id="30"/>
</track>
</mergingTracksBreakdownStructure>
Необходим вывод xml: как указано ниже
<mergingTracksBreakdownStructure>
<track id="10">
<mergedTrack id="10"/>
<mergedTrack id="11"/>
<mergedTrack id="12"/>
</track>
<track id="13">
<mergedTrack id="13"/>
<mergedTrack id="14"/>
</track>
<track id="15">
<mergedTrack id="15"/>
<mergedTrack id="16"/>
</track>
<track id="27">
<mergedTrack id="27"/>
</track>
<track id="30">
<mergedTrack id="30"/>
</track>
</mergingTracksBreakdownStructure>
XSLT используется для преобразования:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:result-document href="output.xml" method="xml">
<xsl:apply-templates select="document('input.xml')//track"/>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
xsl:result-document
илиdocument()
? - person michael.hor257k   schedule 05.06.2020