【发布时间】:2011-11-08 21:03:52
【问题描述】:
我无法很好地解释为什么这里的第二个示例有效但第一个无效:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xsd"
version="2.0">
<xsl:template match="/">
<xsl:value-of select="/wsdl:definitions/wsdl:message[@name = $messageName]"/>
<xsl:value-of select="/wsdl:definitions/wsdl:message/@name[. = $messageName]"/>
</xsl:template>
</xsl:stylesheet>
上下文是在 WSDL 文档中查找特定的命名消息。我怀疑它与命名空间有关,几乎所有让我对 XSLT 感到不快的事情都是,但我不明白为什么?
有人能帮我解释一下吗?我不喜欢尝试找到解决方案,因为它不会导致理解。
WSDL 的相关部分是:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="retrieveCustomerYtdResponse">
<part name="parameter"/>
</message>
<message name="retrieveCustomerYtdRequest"/>
</definitions>
【问题讨论】:
标签: xslt attributes namespaces matching