Проблема самозакрывающихся тегов XSLT - PullRequest
23 голосов
/ 20 мая 2009

Я использую xslt для преобразования XML-файла в HTML. Движок .net xslt продолжает предоставлять мне самозакрывающиеся теги для пустых тегов.

Пример:

<div class="test"></div> 

становится

<div class="test" />

Первый является действительным html, а второй является недействительным html и плохо отображает. Мой вопрос: Как мне сказать движку xslt (XslCompiledTransform) не использовать самозакрывающиеся теги.

Если это невозможно, как я могу сказать моему браузеру (в данном случае IE6 +) правильно интерпретировать закрывающиеся теги.

Ответы [ 11 ]

0 голосов
/ 24 сентября 2012

Только что возникла та же проблема с XSL в PHP 5, с выходом / @ method = html. Кажется, что присвоение пустого атрибута значения приведет к тому, что элементы будут выводиться как недопустимые несамозакрывающиеся, незамкнутые теги:

<input type="text" name="foo" value="{my-empty-value}" />

Результат:

<input type="text" name="foo" value="">

Одним из возможных решений является условное добавление атрибута:

<xsl:if test="string-length(my-empty-value) > 0">
    <xsl:attribute name="value">
        <xsl:value-of select="my-empty-value" />
    </xsl:attribute>
</xsl:if>

в результате:

<input type="text" name="foo" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...