Я знаю, что были и другие вопросы по этой теме, но то, что я ищу, не существует.Слияние XML в разных последовательностях
Что я хочу сделать, это объединить 2 XML-файла, но не один XML-файл за другим.
Например мой первый файл XML будет game.xml:
<forSale>
<game>
<title>Mass Effect 3</title>
<releaseDate>
<yyyy>2012</yyyy>
<mm>03</mm>
<dd>06</dd>
</releaseDate>
<esrbRating>M</esrbRating>
<platforms>
<platform>X360</platform>
</platforms>
</game>
<game>
<title>Borderlands 2</title>
<releaseDate>
<yyyy>2012</yyyy>
<mm>09</mm>
<dd>18</dd>
</releaseDate>
<esrbRating>M</esrbRating>
<platforms>
<platform>PC</platform>
</platforms>
</game>
И мой второй XML-файл reviews.xml
<reviews>
<game>
<title>Mass Effect 3</title>
<review>
<critic>Kevin VanOrd</critic>
<pros>
<pro><![CDATA[Fantastic, moving story that balances plot and character]]></pro>
</pros>
<cons>
<con><![CDATA[Some glitches and bugs]]></con>
</cons>
</review>
</game>
<game>
<title>Borderlands 2</title>
<review>
<critic>Chris Watters</critic>
<pros>
<pro><![CDATA[A ton of great mission writing and dialogue]]></pro>
</pros>
<cons>
<con><![CDATA[Spoken messages sometimes interrupt each other]]></con>
</cons>
</review>
</game>
И я хочу, чтобы мои итоговый XML-файл должен быть таким:
<forSale>
<game>
<title>Mass Effect 3</title>
<releaseDate>
<yyyy>2012</yyyy>
<mm>03</mm>
<dd>06</dd>
</releaseDate>
<esrbRating>M</esrbRating>
<platforms>
<platform>X360</platform>
</platforms>
<review>
<critic>Kevin VanOrd</critic>
<synopsis>
Mass Effect 3 is a remarkably satisfying conclusion to a beloved trilogy, and a poignant and memorable role-playing action game in its own right.
</synopsis>
<pros>
<pro>Fantastic, moving story that balances plot and character</pro>
</pros>
<cons>
<con>Some glitches and bugs</con>
</cons>
</review>
</game>
<game>
<title>Borderlands 2</title>
<releaseDate>
<yyyy>2012</yyyy>
<mm>09</mm>
<dd>18</dd>
</releaseDate>
<esrbRating>M</esrbRating>
<platforms>
<platform>PC</platform>
</platforms>
<review>
<critic>Chris Watters</critic>
<synopsis>
Stellar writing and a host of small improvements help Borderlands 2 stand tall on the shoulders of its predecessor.
</synopsis>
<pros>
<pro>A ton of great mission writing and dialogue</pro>
</pros>
<cons>
<con>Spoken messages sometimes interrupt each other</con>
</cons>
</review>
</game>
Я попробовал этот код, но он выводит игры первым, то отзывы
<xsl:template match="/forSale">
<xsl:copy>
<xsl:apply-templates select="game"/>
<xsl:apply-templates select="document('reviews.xml')/reviews/game/review"/>
</xsl:copy>
</xsl:template>
<xsl:template match =" @* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node() | text()"/>
</xsl:copy>
</xsl:template>
сейчас его лучше, потому что обзоры идут под соответствующей игрой, но тогда все, что было под игрой, больше не существует. –
Упс! Виноват! Я пропустил ключевую строку для копирования существующих узлов под элементом игры. Ответ теперь исправлен. –
Thanx много, ты помог был очень полезен –