我正在使用基本“超级”xml 文件和参考 xml 文件生成 xml 输出,以列出我需要的超级文件的部分。
问题是for函数。当我使用它来迭代一个集合并有条件地输出一个值时,它会不断输出不匹配的空格!
这是我的代码
<xsl:attribute
name="type"
select="
for $index_type in $ref_indexes/@type
return (if
(translate($index_type, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
'abcdefghijklmnopqrstuvwxyz') = ./@type)
then $index_type
else '')) "/>
哪里$ref_indexes/@type
可以包含
"abc def ghi MNO"
并且./@type
将是一个单一的元素
{abc,def,ghi,jkl,mno,pqr}
结果总是在属性中有空格,即:
type="abc..."
type=".def.."
type="..ghi."
type="...MNO"
- 我尝试过使用 intersect 并得到了这个:
“'intersect' 的第一个操作数的必需项类型是 node();提供的值具有项类型 xs:string”
- 我试过
nomalize-space
了,得到了这个:
“一个以上项目的序列不允许作为 normalize-space() 的第一个参数”
当我使用
distinct-values
它时,它只给了我一个空间,这尤其令人沮丧,因为它是如此接近!我也尝试检查长度 > 1 的结果,但我仍然得到空格。我也尝试在翻译中包含一个空格。
FWIW 我正在使用 Java 1.5.0_26 和 Saxon 9 HE 在 OSX (10.6.7) 上进行转换。
在这个阶段我几乎没有想法:(
热烈感谢所有和任何帮助,
加里