以下是对Web服务的响应。
<Envelope>
<Body>
<searchItemResponse>
<status>
<statusCode>Success</statusCode>
</status>
<itemList>
<itemWithWarehouses>
<item>
<originOfData>SME</originOfData>
<itemNumbers>
<shortNumber>115632</shortNumber>
<tssArticleNumber>PT0401450-T46N</tssArticleNumber>
<relatedItems>
<alternateItemsNumber>ORAR00428-N7083</alternateItemsNumber>
</relatedItems>
</item>
<warehouseItems>
.....................
</warehouseItems>
<warehouseItems>
.....................
</warehouseItems>
</itemWithWarehouses>
</itemList>
</searchItemResponse>
</Body>
</Envelope>
在某些情况下,缺少以下节点。
<relatedItems>
<alternateItemsNumber>ORAR00428-N7083</alternateItemsNumber>
</relatedItems>
我需要确定节点是否不存在,我需要插入如下所示的节点
<relatedItems>
<alternateItemsNumber/>
</relatedItems>
我需要一个XSLT。请帮我。感谢
答案 0 :(得分:0)
您可以使用模板查找没有itemNumbers
元素的任何relatedItems
,然后添加空元素:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" version="2.0" xpath-default-namespace="" exclude-result-prefixes="#all">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:template match="itemNumbers[not(relatedItems)]">
<xsl:copy>
<xsl:apply-templates select="*"/>
<xsl:element name="relatedItems">
<xsl:element name="alternateItemsNumber"/>
</xsl:element>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>