Как сделать XSL-преобразование отступом в выводе? - PullRequest
11 голосов
/ 08 марта 2010

Я использую xalan со следующим заголовком xsl:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0"
    xmlns:redirect="http://xml.apache.org/xalan/redirect"
    extension-element-prefixes="redirect"
    xmlns:xalan="http://xml.apache.org/xalan">
<xsl:output method="text" indent="yes" xalan:indent-amount="4"/>

И вывод не имеет отступ.

Кто-нибудь с идеями?

Ответы [ 4 ]

21 голосов
/ 26 марта 2011

Для отступов вам нужно использовать другое пространство имен: "http://xml.apache.org/xslt" (см. этот выпуск )

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
extension-element-prefixes="redirect"
xmlns:xalan="http://xml.apache.org/xslt">
<xsl:output method="xml" indent="yes" xalan:indent-amount="4"/>
9 голосов
/ 18 апреля 2013

Некоторое время боролся с этим, но только случайно заработал:

ключ должен был добавить <xsl:strip-space elements="*"/>

так это будет выглядеть так:

<xsl:stylesheet 
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:java="http://xml.apache.org/xalan/java"
    xmlns:xalan="http://xml.apache.org/xslt">
<xsl:output method="xml" encoding="ASCII" indent="yes" xalan:indent-amount="4"/>
<xsl:strip-space elements="*"/>

Не знаю почему, но, вероятно, удаление всего пробела помогает xalan выяснить отступ

5 голосов
/ 30 мая 2011

Jirka-x1, спасибо за ссылку-вопрос. Я использовал следующее (как предложено Эд Нолл 13 августа / 04):

<xsl:stylesheet ... xmlns:xslt="http://xml.apache.org/xslt">
<xsl:output ... indent="yes" xslt:indent-amount="4" />

Это работает для меня с xalan (java) 2.7.1.

2 голосов
/ 08 марта 2010

Полагаю, вам нужно установить method на xml. Если это не сработает, попробуйте следующее:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan">

<xsl:output method="xml" encoding="UTF-8" indent="yes" xalan:indent-amount="4"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...