如何使用xquery保留属性中的所有空格?

时间:2013-04-09 09:21:04

标签: xquery saxon

我需要保留属性中的所有空格,如

<img src="images/some     image.jpg"/>

所有空白对于找到图像都很重要。

我使用saxon处理器用这样的表达式解析xml:

declare boundary-space preserve;
string($mydoc/html/body/div/a/img/@src)

但结果是

images/some image.jpg

我希望有人可以提供帮助,因为它似乎很容易。

阿兰

2 个答案:

答案 0 :(得分:1)

属性中是多个空格,还是制表符?如果它是一个选项卡,XML解析器将自动用一个空格替换它(请参阅规范中的“属性值规范化”)。

如果它是多个空格,我认为它将被单个空格替换的唯一方法是,如果在DTD中使用CDATA以外的类型定义属性 - 这似乎不太可能。

答案 1 :(得分:1)

aie aie aie !!! 问题不在于xquery处理。

事实上,在使用saxon处理之前,我使用Tidy将html转换为xhtml。 并且Tidy默认将选项literal-attributes设置为false。

  

此选项指定Tidy是否应确保属性值中的空格字符未经过更改传递。

将其设置为true可解决问题,并保留所有中间空格。

我很抱歉浪费你的时间