Ответ 1
Вот таблица стилей 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>
, только самые внешние из них будут иметь эту специальную обработку. Я не думаю, что вы намерены использовать свой документ иметь такую рекурсивную структуру, чтобы она не повлияла на вас, но на всякий случай стоит упомянуть.)