Я пытаюсь преобразовать набор данных с помощью XSLT. Только один раздел должен получить дополнительные теги.Обтекание определенных узлов XML в тегах с использованием XSLT
<formData>
<baseFields>
<elementA>TEST</elementA>
<elementB>TEST2</elementB>
</baseFields>
<dataFields>
<groupA>
<elementA>TEST</elementA>
<elementB>TEST2</elementB>
</groupA>
<groupB>
<elementA>TEST</elementA>
<elementB>TEST2</elementB>
</groupB>
</dataFields>
</formData>
в
<formData>
<elementA>TEST</elementA>
<elementB>TEST2</elementB>
<groupA>
<elementA><asCurrent>TEST</asCurrent></elementA>
<elementB><asCurrent>TEST2</asCurrent></elementB>
</groupA>
<groupB>
<elementA><asCurrent>TEST</asCurrent></elementA>
<elementB><asCurrent>TEST2</asCurrent></elementB>
</groupB>
</formData>
baseFields группа и группа поля данных должны быть удалены, и узлы или текстовые элементы в разделе Поля данных должны быть завернуты в asCurrent тегов.
Любая помощь будет оценена!
Обновление: Основываясь на помощи Dan Field, я смог обработать это, используя следующий XSLT.
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="baseFields">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="dataFields">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="dataFields//text()">
<asCurrent><xsl:copy><xsl:apply-templates select="text()"/></xsl:copy></asCurrent>
</xsl:template>
</xsl:transform>
Ваш первый шаблон является избыточным и может быть удален. OTOH, добавление ' ' может быть полезным. –
Спасибо за помощь! Я смог использовать XSLT в качестве базы для моего использования. Я добавил и добавил одно дополнительное соответствие для текстовых узлов в теге dataFields, чтобы обернуть их в теги asCurrent –
Neil
Спасибо за советы @ michael.hor257k! –