假设我们有这个源XML:
renderScene
我需要将CLASS更改为MROClass。我有这个XSL,它不起作用,有人可以告诉我有什么问题吗?转换也可以在http://xsltransform.net/gWEamL8/1
上找到<?xml version="1.0" encoding="UTF-8"?>
<SyncSupplierPartyMaster xmlns="http://schema.infor.com/InforOAGIS/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.infor.com/InforOAGIS/2 http://schema.infor.com/2.10.x/InforOAGIS/BODs/Developer/SyncSupplierPartyMaster.xsd" releaseID="9.2" versionID="2.10.x">
<DataArea>
<SupplierPartyMaster>
<Classification>
<Codes>
<Code listID="CLASS" sequence="1">3</Code>
<Code listID="CURRENCY" sequence="2">EUR</Code>
<Code listID="KVK" sequence="3">-</Code>
</Codes>
</Classification>
</SupplierPartyMaster>
</DataArea>
</SyncSupplierPartyMaster>
答案 0 :(得分:2)
XSLT区分大小写。您的XML属性和listID
,但您的XSLT正在寻找ListID
(大写L)。尝试将模板更改为:
<xsl:template match="@listID[.='CLASS']">
<xsl:attribute name="listID">
<xsl:value-of select="'MROClass'"/>
</xsl:attribute>
</xsl:template>
请注意,您确实不需要使用xsl:value-of
输出文字,您可以这样做......
<xsl:template match="@listID[.='CLASS']">
<xsl:attribute name="listID">
<xsl:text>MROClass</xsl:text>
</xsl:attribute>
</xsl:template>
或者就是这样:
<xsl:template match="@listID[.='CLASS']">
<xsl:attribute name="listID">MROClass</xsl:attribute>
</xsl:template>