我想使用Xpath和XSLT获取XML节点的值。下面是输入XML和我的XSLT代码。
以下是请求xml:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:pbdp="http://datapower.common.stp.pbds.pbit.jpmc.com"
xmlns:dpconfig="http://www.datapower.com/param/config"
xmlns:nw="http://www.datapower.com/extensions/functions"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:func="http://exslt.org/functions"
xmlns:nat="http://schemas.datacontract.org/2004/07/xyz.DigitalBanking.Service.Token"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
-->
<xsl:template match="/">
<xsl:variable name="c">'</xsl:variable>
<xsl:variable name="applicationType" select="string(//*[local-name()='nat:GetAdfsSAMLFromASML']/@*[local-name()='nat:request']/@*[local-name()
='nat:applicationType'])"/>
<xsl:value-of-select= "$applicationType"/>
</xsl:template>
</xsl:stylesheet>
以下是xsl代码:
<nat:applicationType>
我想获取unset JMX_PORT
kafka-topics.sh --create --topic users --replication-factor 1 --partitions 2 --zookeeper zk:2181
的值。即输出应 secure_inbox 。
我尝试使用上面的xslt但没有得到所需的输出。
答案 0 :(得分:1)
以下样式表:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:nat="http://schemas.datacontract.org/2004/07/xyz.DigitalBanking.Service.Token"
exclude-result-prefixes="soapenv nat">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<result>
<xsl:value-of select="/soapenv:Envelope/soapenv:Body/nat:GetAdfsSAMLFromASML/nat:request/nat:applicationType"/>
</result>
</xsl:template>
</xsl:stylesheet>
应用于您的输入示例时,将返回:
<?xml version="1.0" encoding="UTF-8"?>
<result>secure_inbox</result>