<To>
<Id>SERVICE</Id>
<Role>Commuter</Role>
</To>
<BPD>
<OrgNo>234</OrgNo>
</BPD>
<BON>123</BON>
我有这个输入 XML,我想在其中检查是否//To/Id
包含 SERVICE。如果它包含 SERVICE 则应在<BPD>
命名后添加一个元素<BON>SERVICE</BON>
。另外我想检查我的输入 XML 是否已经包含<BON>
元素,那么它的值应该被<Id>
元素中的 SERVICE 替换。
我为此创建了一个模板->
<xsl:template match="BPD">
<xsl:choose>
<xsl:when test="not(BON) and normalize-space(/To[Role='Commuter']/Id)='SERVICE'">
<BON>
<xsl:text>SERVICE</xsl:text>
</BON>
</xsl:when>
<xsl:when test="normalize-space(BON) and normalize-space(/To[Role='Commuter']/Id)='SERVICE'">
<BON>
<xsl:text>SERVICE</xsl:text>
</BON>
</xsl:when>
</xsl:choose>
</xsl:template>
该模板正在检查是否存在。如果它不存在,那么它会创建<BON>
元素并将“SERVICE”作为值添加到它。如果存在,那么它会再创建一个不需要的元素。我需要纠正我的第二次情况。