Вот таблица стилей XSLT 1.0, которая будет выполнять то, что вы просили:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Identity transform -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Name">
<xsl:copy-of select="."/>
<Age>34</Age>
</xsl:template>
<xsl:template match="Dept">
<xsl:copy-of select="."/>
<Domain>Insurance</Domain>
</xsl:template>
</xsl:stylesheet>
Очевидно, что логика будет меняться в зависимости от того, откуда вы будете получать новые данные и куда они должны идти.Приведенная выше таблица стилей просто вставляет элемент <Age>
после каждого элемента <Name>
и элемент <Domain>
после каждого элемента <Dept>
.
(Ограничение: если ваш документ может иметь <Name>
или <Dept>
элементы в других <Name>
или <Dept>
элементах, только особые элементы будут иметь такую специальную обработку. Я не думаю, что вы планируете, чтобы ваш документ имел такую рекурсивную структуру, поэтому это не повлияет на вас, нона всякий случай стоит упомянуть.)