提前抱歉,如果之前有像我这样的答案,但我已经检查过,但没有找到这个简单问题的确切答案:
<self-uri xlink:href="http://www.harmreductionjournal.com/content/1/1/5">
我想做的就是选择属性“xlink:href”的值
应用以下选择器始终返回空结果:
<xsl:value-of select="@xlink:href"/>
我在处理过程中迭代了属性值
xlink:href: http://www.harmreductionjournal.com/content/1/1/5
我的问题很简单:如何获取具有命名空间的属性的值?据我了解,它应该像这样工作。
如果你能指出我关于 SO 的正确问题,那就足够了。
提前致谢。
编辑:
根据答案,我检查了我的根样式表声明,它看起来像这样:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mml="http://www.w3.org/1998/Math/MathML"
exclude-result-prefixes="xlink mml">
我猜排除属性与该问题有关。如果我替换它,我发现它仍然不起作用,并且结果 xml 在随机位置充满了它。
最佳答案
只要您的 XSL 文件具有映射到相同 namespace 的相同前缀,您的方法就应该有效。换句话说,您的 XSL 文件应该具有 namespace 映射
xmlns:xlink="..."
其中 ...
与源文档中为该命名空间前缀定义的值相同。
关于java - 带有命名空间的 XSLT 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523516/