|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
Всем привет, чтобы сделать сабж, я использую следующий XSLT: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Он работает, только вот пустые узлы, записанные как Код: plaintext
Код: plaintext 1.
Я попробовал другое преобразование: Код: plaintext 1. 2. 3. 4. 5. 6.
- оно не коверкает пустые узлы, но вот создаёт отступы в XML'е только если этот XML уже разнесён на строки. Т.е. оно создаст отступы в Код: plaintext 1. 2. 3. 4. 5. 6.
но не сможет их создать, если тот же самый XML записан в однй строку: <?xml version="1.0" encoding="UTF-16"?><x:MyRootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:x="#MyNamespace'"><x:ChileNode1 name="bla-bla-bla"><x:ChileNode2 name="bla-bla-bla"></x:ChileNode2></x:ChileNode1></x:MyRootElement> Т.е. тоже не вариант. Может ли кто посоветовать "золотую середину", которая и пустые узлы не трогает (не разбивает их на открывающий/закрывающий тэги, сидящие в разных строках), и одинаково хорошо разносит как single-line, так и multi-line XML? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 10:39 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
Gecko так не делает. Чем трансформишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 11:45 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
кстати, indent='true' – неправильно, надо indent='yes'. Тупые америкосы, однако. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 11:47 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
maXmoGecko так не делает. Чем трансформишь?Использую библиотеку MS XML v.6.0 (msxml6.dll), метод transformNode объекта DOMDocument. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 15:05 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
В принципе, я могу использовать второй вариант преобразования, предварительно разбив весь XML на отдельные строки по открывающей угловой скобке. Но это уж на самый крайний случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 15:54 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2009, 23:40 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
MSXML ни на что не ложит, почитайте это :) А если серьёзно - то в форумах Microsoft подсказали ответ. В коде VB6 нужно использовать (при объявлениях и инстанциациях) тип DOMDocument60, а не DOMDocument - даже при условии, что к VB6-проекту явно подключена 6-я версия библиотеки MSXML! И ведь, блин, знал когда-то эту "фичу", да забыл. Эта библиотека, при переходе от младшей своей версии к старшей, сохраняет совместимость "экстенсивным" образом - т.е. не только блюдёт binary compatibility существующих элементов, но ещё и расширяет свою объектную модель , включая в неё элементы предыдущей (младшей) версии, помеченные постфиксом с номером версии. Иными словами, XSLT-преобразование первого типа (см. мой первый пост) обращается с пустыми узлами в зависимости от версии библиотеки MSXML следующим образом: Код: plaintext 1. 2.
Поэтому явное использование версии 6.0 решает мою проблему! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2009, 11:21 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
ну если не ident, то только или ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2009, 13:35 |
|
Создание отступов в XML посредством XSLT
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2009, 13:37 |
|
|
start [/forum/topic.php?fid=14&msg=35830951&tid=1333636]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 130ms |
0 / 0 |