java - 带有命名空间的 XSLT 属性

标签 java xml xslt xml-namespaces

提前抱歉,如果之前有像我这样的答案,但我已经检查过,但没有找到这个简单问题的确切答案:

<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/

相关文章:

Java 输入为空显示警报

c# - 3层架构系统

java - 如何使用 JDO 中的对象列表更新对象

xml - 使用 XSL 替换默认命名空间

java - GWT 中的 servlet 和路径出现错误 503 (Java)

java - 使用JAVA比较两个xml文件

java - 如何使用 org.w3c.dom 在属性之间添加新行。 JAVA 中的 XML

java - 如何通过 ID 和 NamedNodeMap 获取 XML 节点 - Java DOM XML

javascript - 从另一个下拉列表中选择值时获取下拉列表中的值

xslt - apply-templates 输出内容的次数超过预期