我想提取属性值并分配给xslt中的目标xml节点。
这是保存混合内容的节点
<oa:Expression expressionLanguage="_wcf:XPath">{_wcf.ap=IBM_External_Summary}/Order[BuyerIdentifier[(ExternalCustomerID='101234660')]
and BuyerIdentifier[(LogonID='anflee.jon.scott@gmail.com')]
and OrderStatus[(Status='M')] and StoreIdentifier[UniqueID=10051]]
有人可以告诉我如何提取uniqueid,externalcustomerid,logonid和status。
欣赏快速帮助。
此致 TJ
答案 0 :(得分:1)
首先,不是 mixed content的含义。其次,你将很难提取值,因为它们不遵循一个共同的模式(一些是引用的,一些不是,一些是圆括号,一些是方形)。
以下是使用命名模板提取LogonID
:
<xsl:call-template name="extract">
<xsl:with-param name="string" select="oa:Expression"/>
<xsl:with-param name="label" select="'LogonID'"/>
</xsl:call-template>
...
<xsl:template name="extract">
<xsl:param name="string"/>
<xsl:param name="label"/>
<xsl:param name="start">='</xsl:param>
<xsl:param name="end">'</xsl:param>
<xsl:value-of select="substring-before(substring-after($string, concat($label, $start)), $end)" />
</xsl:template>
可以使用相同的模板提取ExternalCustomerID
和Status
- 但在尝试提取{{{}时,您需要覆盖默认的start
和end
参数1}}。