0

带有破折号的xml标签有问题吗?

我正在尝试从 xsl 和 xml 生成 pdf ..

例如,我有以下内容:

<car>
  <name>toyotoa</name>
  <color-value>green</color-value>
</car>

在我的 xsl 我有类似的东西

<fo:inline font-weight="bold"> <xsl:value-of select="name" /> </fo:inline>

这会在 pdf 中打印正确的值

如果我尝试打印第二个标签(颜色值).. pdf 中没有打印任何内容.. 好像它无法读取该节点。

<fo:inline font-weight="bold"> <xsl:value-of select="color-value" /> </fo:inline>

这什么都不返回..

但是,当我在 eclipse 中进行测试并将 xsl 作为 xsl 转换运行时 .. 输出文件正确显示了这两个值。只有在 pdf 中它只显示第一个。

关于可能发生的事情的任何线索?

编辑 我可以通过尝试列出汽车节点下标签的所有值来以某种方式进行调试吗?也许这会给我一些提示。?

编辑 2 看起来问题发生在速度模板而不是 xls

编辑 3 在检查速度模板调用的用于生成汽车颜色值的方法后找到了解决方案。显然存在继承问题,并且该值甚至没有插入到 xml 中进行转换。

4

2 回答 2

1

您需要在第二个示例中关闭 select 属性。

于 2009-12-17T11:21:38.323 回答
0

如果这不是一个完整的答案,我很抱歉,但在我看来,转义可能是这里的问题。XSLT 标准似乎暗示,select 属性的值是一个表达式,它可能将破折号视为减法(如元素颜色的值减去元素值的值)。我不知道如何解决这个问题。

于 2009-12-17T13:06:46.233 回答