我的输入类似于:
<Person>
<FirstName>abc</FirstName>
<Bsn>2345467</Bsn>
<Person>
输出应为:
<Person>
<properties>
<property>
<propertyname> Firstname </propertyname>
<propertyValue> abc </propertyValue>
</property>
<property>
<propertyname> Bsn</propertyname>
<propertyValue> 2345467 </propertyValue>
</property>
</properties>
</Person>
我的意思是目标没有特定的属性/属性。相反,它有一组属性,其中我指定属性的名称和属性的值。
非常感谢任何帮助。
我正在使用Biztalk 2009
请帮忙
答案 0 :(得分:1)
在这种情况下,我会使用自定义XSLT - 使用scripting functiod或使用自定义XSLT文件替换整个地图(取决于其余地图的外观)。
解决方案看起来像这样。
<强> XML 强>
<Persons>
<Person>
<FirstName>abc</FirstName>
<Bsn>2345467</Bsn>
</Person>
</Persons>
<强> XSLT 强>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Persons">
<Persons>
<xsl:apply-templates select="Person" />
</Persons>
</xsl:template>
<xsl:template match="Person">
<Person>
<properties>
<xsl:apply-templates select="*" mode="properties" />
</properties>
</Person>
</xsl:template>
<xsl:template match="node()" mode="properties">
<property>
<propertyname>
<xsl:value-of select="local-name()"/>
</propertyname>
<propertyvalue>
<xsl:value-of select="."/>
</propertyvalue>
</property>
</xsl:template>
</xsl:stylesheet>
<强>结果强>
<?xml version="1.0" encoding="utf-8"?>
<Persons>
<Person>
<properties>
<property>
<propertyname>FirstName</propertyname>
<propertyvalue>abc</propertyvalue>
</property>
<property>
<propertyname>Bsn</propertyname>
<propertyvalue>2345467</propertyvalue>
</property>
</properties>
</Person>
</Persons>