1
我找不到为什么在这里的第二个例子工程,但先不一个很好的解释:XSLT属性匹配名称空间
<?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>
是的,你是绝对正确的感谢解释。第一个表达式确实返回了文本节点,这就是我错过的知识。如果我现在理解正确/ wsdl:definitions/wsdl:message [@name = $ messageName]/@ name在这种情况下会给我我想要的。 – simon
是的。这是正确的。如果您认为您的问题已解决,请确保** [接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)**。 –
个人而言,我更喜欢XPath表达式,其中** @ name **只重复一次。 –