Отказ от ответственности: следующее против греха против XML. Вот почему я пытаюсь изменить его с помощью XSLT :)Сохранение атрибута whitespace
Мой XML в настоящее время выглядит следующим образом:
<root>
<object name="blarg" property1="shablarg" property2="werg".../>
<object name="yetanotherobject" .../>
</root>
Да, я ставлю все текстовые данные в атрибутах. Я надеюсь, что XSLT может спасти меня; Я хочу, чтобы перейти к чему-то вроде этого:
<root>
<object>
<name>blarg</name>
<property1>shablarg</name>
...
</object>
<object>
...
</object>
</root>
Я на самом деле получил все это работает до сих пор, за исключением того, что мои грехи против XML были больше ... исключительны. Некоторые теги выглядеть следующим образом:
<object description = "This is the first line
This is the third line. That second line full of whitespace is meaningful"/>
Я использую xsltproc под Linux, но это, кажется, не имеют каких-либо опций для сохранения пробелов. Я попытался использовать xsl: preserve-space и xml: space = "сохранить" безрезультатно. Кажется, что каждый найденный параметр применяется для хранения пробелов внутри самих элементов, но не для атрибутов. Каждый раз, выше получает изменено на:
This is the first line This is the third line. That second line full of whitespace is meaningful
Таким образом, вопрос, могу ли я сохранить атрибут пробелы?
Вы должны заменить свои белые-пространства с объектными ссылками для внутреннего значения attribe, как заменить `<Описание объекта =" первый line` \ п ` следующая строка "/>` с `<описание объекта =" первая строка следующая строка "/>`. Нормализация значения атрибута (3.3.3) тогда зависит от типа атрибута, который я считаю `CDATA` defatult. Однако я думаю, что вы можете заставить его использовать ` '>` - может быть или не быть правильным. Тогда, если у вас есть XSL, вам нужно будет вручную обрабатывать пустое пространство, я сделал так же, как `string-join()` и `tokenize()`. – n611x007 2015-04-21 18:11:53
*** Это можно сделать. *** Вы можете получить полный пример ([SSCCE] (http://www.sscce.org/ «Short, Self Contained, Correct (Compilable), Example»)) из мой ответ на другой вопрос: http://stackoverflow.com/a/29780972/611007 (Как я объяснял выше, это не так, как вы пытаетесь это сделать, но в конце концов, он будет работать так, как вы хотели бы.) – n611x007 2015-04-21 20:05:15
связанные с: https://stackoverflow.com/questions/449627/ - , связанные с: https://stackoverflow.com/questions/2004386/ - , связанные с: https://stackoverflow.com/questions/1289524/ – n611x007 2015-04-22 10:58:44