XSLT: скопировать два файла в одну общую структуру

Я пытаюсь объединить результат задачи SSIS Data Profiler для нескольких таблиц в один XML-файл для проверки результатов в одном файле внутри "Data Profiler Viewer". Вся проблема сводится к сильно упрощенной XML-трансформации здесь:

Файл 1 (test_1.xml):

<a xmlns="http://schemas.microsoft.com/sqlserver/2008/DataDebugger/">
   <b id="1"/>
   <c>
      <2: any other XML-structure to come here/>
   </c>
</a>

Файл 2 (test_2.xml):

<a xmlns="http://schemas.microsoft.com/sqlserver/2008/DataDebugger/">
   <b id="1"/>
   <c>
      <1: any other XML-structure to come here/>
   </c>
</a>

(Элемент b всегда точно такой же)

Ожидаемый результат:

<a xmlns="http://schemas.microsoft.com/sqlserver/2008/DataDebugger/">
   <b id="1"/>
   <c>
      <1: any other XML-structure to come here/>
      <2: any other XML-structure to come here/>
   </c>
</a>

Любая помощь настоятельно рекомендуется! Я предоставлю решение исходной проблемы здесь.

1 ответ

Еще одна попытка:

<?xml version='1.0' encoding="utf-8"?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:t="http://schemas.microsoft.com/sqlserver/2008/DataDebugger/"
    version="1.0">

    <xsl:output method="xml" indent="yes" omit-xml-declaration="no" version="1.0" encoding="UTF-8"/>

    <xsl:template match="t:c">
        <xsl:element name="c" namespace="http://schemas.microsoft.com/sqlserver/2008/DataDebugger/">
        <xsl:copy-of select="*" />
        <xsl:copy-of select="document('test_2.xml')//t:c/node() " />
        </xsl:element>
    </xsl:template>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>

проверено с помощью xalan (установить classpath в окружении)

java org.apache.xalan.xslt.Process -IN test1_1.xml -XSL test1.xslt -OUT test1_12.xml 

и саксонский (сменить скрипт на Version = "1.1")

java -jar saxon-9.1.0.8j.jar -s:test_1.xml -xsl:test_1.xslt -o:test_12.xml 
Другие вопросы по тегам