我的业务要求是将输入XML转换为转换后的XML。
输入XML如下
<root>
<name>football</name>
<pageTitle>League</pageTitle>
<pageMetaDescription>Inter City League</pageMetaDescription>
</root>
基于XSLT的转换后预期的输出Xml
<root>
<Array>
<name>name</name>
<text>football</text>
<format>plainText</format>
</Array>
<Array>
<name>pageTitle</name>
<text>League</text>
<format>plainText</format>
</Array>
<Array>
<name>pageMetaDescription</name>
<text>Inter City League</text>
<format>plainText</format>
</Array>
</root>
为了执行此类转换,我无法编写XSLT 任何人都可以让我知道如何为这样的要求编写这样的XSLT。
答案 0 :(得分:1)
您编写了I am not able to write XSLT
,但我将其视为我对XSLT的了解
太有限了,需要帮助怎么做。
无论如何,你把这个问题标记为a.o.只需 XSLT !
匹配root
的模板与 identity teplate 非常相似。
但是匹配其子元素的模板更复杂:
Array
开始标记开始。name
标记,其值等于标记的名称( name())。text
代码,其值等于代码的内容(。)。format
标记内容为plainText
。Array
结束标记结束。所以整个脚本可能如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="root">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="root/*">
<Array>
<name><xsl:value-of select="name()"/></name>
<text><xsl:value-of select="."/></text>
<format>plainText</format>
</Array>
</xsl:template>
</xsl:transform>
你没有写它,但如果你有其他的源标签案例 除 plainText 之外的格式(例如 date ),你必须写 其他模板(匹配这些标签名称),以及各自的详细信息 另一种说法。