2013-04-09 5 views
0

мне нужно сохранить все пробелы в атрибуте, как вКак сохранить все пробелы в атрибуте с помощью xquery?

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

Всех пробельных существенны, чтобы найти изображение.

Я использую процессор Саксон для разбора XML с выражением, как это:

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

Но результат

images/some image.jpg 

Я надеюсь, что кто-то может помочь, как это кажется легким.

Ален

ответ

1

Это несколько пробелов в атрибуте, или символ табуляции? Если это вкладка, синтаксический анализатор XML автоматически заменит его на единое пространство (см. «Нормализация значения атрибута» в спецификации).

Если это несколько пробелов, единственный способ, которым я могу думать, что он будет заменен одним пространством, - это если атрибут определен в DTD с типом, отличным от CDATA, что кажется маловероятным.

+0

это несколько пробелов. И я не могу изменить способ поступления атрибута, поскольку он из кода ярусов. – furby91

+0

И есть ли DTD? –

+0

Исходный документ - это html-документ – furby91

1

aie aie aie !!! Проблема не в обработке xquery.

Фактически, я использую Tidy для преобразования html в xhtml перед его обработкой с помощью саксона. И Tidy имеет опционные атрибуты literal-атрибутов, которые по умолчанию установлены в false.

Этот параметр указывает, должен ли Tidy гарантировать, чтобы пробельные символы в значениях атрибута передавались без изменений.

Устанавливает правильность решения проблемы, и все промежуточные пробелы сохраняются.

Извините, что потратил ваше время

Смежные вопросы