|
|
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
Привет всем. Вопрос такой есть xml, есть xsl. Обрабатываю ... все работает как надо, выводит то что нужно, все шаблоны отрабатывают тип-топ, но есть одно НО... по мимо полезной информации в выходной файл вылазит и простой текст из xml Пытался дебагером построчно посмотреть где вылазит, чтоб забить его, но увидел лишь следующее: К примеру в xsl есть шаблон по обработки некого тега, а в данном xml такого тега нет, дебагер встает на (допустим) <xsl:apply-templates select="teg1"/>. не находит его в xml, не заходит, идет дальше, но тут же в документе появляются все текстовые значения xml документа. И в результате получаю смесь нужной информации и текста. Как с этим бороться, может кто встречал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2007, 14:04 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
возможно, применяются шаблоны по умолчанию. Какой процессор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2007, 15:26 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
Saxon 7-3 Saxon 8B - Oxygen v.8.8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2007, 15:52 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
приведи минимальный вариант документа и преобразования, когда такое получается. Простое <apply-templates/> используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2007, 16:01 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
К примеру: xml: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. и если в xsl вместо <xsl:apply-templates mode="text"/> написано <xsl:apply-templates/> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 09:56 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
очевидно, применяются темплейты по умолчанию. Напомню, что они делают так: бегут по дереву, выкидывают аттрибуты и комментарии и копируют текстовые узлы в выходной документ, что ты и наблюдаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 11:42 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
Как с ними бороться? Я конечно придумал один способ, но наверно он не очень хороший с точки зрения программирования, он больше смахивает на заглушку бага проги. Смысл его такой прежде чем запустить шаблон по обработке какого-то тега, проверяю есть ли он вообще в документе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:14 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
SuSaКак с ними бороться?написать такое преобразование, какое тебе надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:24 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
То есть писать xsl под конкретный xml документ. А если пишется универсальный по обработке к примеру 20 различных тегов. И если в текущем xml есть токо 10 уникальных тегов, то чего переписывать xsl? и блокировать проверку других 10 тегов, чтобы недай бог ничего лишнего не вышло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:31 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
можно переопределить шаблон по-умолчанию: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:32 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
или так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:39 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
:) Спасибо но не катит у меня с помощью <xsl:apply-templates mode="text"/> вызываются: <xsl:template match="span" mode="text"/> <xsl:template match="dir" mode="text"/> <xsl:template match="emph" mode="text"/> ... и еще около 5 шаблонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 12:50 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
и? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 13:56 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
Чего "и?".. помимо mode="text" есть еще около 5 групировок по mode, и еще несколько шаблонов без него. Практически все время найдется тот шаблон который не понадобиться, ставить на каждый вызов проверку плана "а нужно ли его проверять" приведет к избыточности исходного кода (начальство по головке не погладит, отвечаю за каждую строчку, с обоснованием "а нафига она нужна?", и "а почему не так? "). ? Как избежать вывода текста если шаблон не применится,но вызовиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 14:03 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
SuSaЧего "и?".. помимо mode="text" есть еще около 5 групировок по mode, и еще несколько шаблонов без него.тогда пиши переопределение для всех мод. SuSaКак избежать вывода текста если шаблон не применится,но вызовитьсячаво каво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 14:17 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
[quot ]К примеру: xml: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 14:41 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
зачем поимённо? Ты же написал <xsl:apply-templates mode="text"/> – будут вызваны шаблоны для всех узлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 14:48 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
а если надо применить те что не имеют mode? и те что имеют, легче всего чтоб выполнились все написать <xsl:aplly-templates/> И еще вопрос в чем радикальное отличие template match="*" и template match="/" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 15:01 |
|
||
|
Левый текст в выходном докумнете
|
|||
|---|---|---|---|
|
#18+
SuSaа если надо применить те что не имеют mode? и те что имеютвозможно, стоит пересмотреть дизайн трансформации. SuSaв чем радикальное отличие template match="*" и template match="/"первый мачит любой элемент, второй – корень документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 15:27 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34411889&tid=1334387]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 336ms |

| 0 / 0 |
