Как вставить XML в другой файл XML с помощью XSLT? - PullRequest
1 голос
/ 25 мая 2010

Я посмотрел эту тему, чтобы узнать, как вставить XML в XML с помощью XSLT Вставить узел XML в определенную позицию существующего документа

Но у меня есть проблема, поскольку мне нужно вставить XML между двумя большими дочерними узлами. Например, я хочу вставить <s>...</s> между <r>...</r> и <t>...</t> в этот файл

<root>
  <child1>
    <a>...</a>
    <r>...</r>
    <t>...</t>
    <z>...</z>
  </child1>
</root>

для создания этого файла

<root>
  <child1>
    <a>...</a>
    <r>...</r>
    <s>...</s>
    <t>...</t>
    <z>...</z>
  </child1>
</root>

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 25 мая 2010

Стандартное «преобразование идентичности» плюс один шаблон для соответствия элементу <r> и вставка <s>...</s> впоследствии:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="r">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
    <s>...</s>
  </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...