XSL: пропустить необработанный HTML - PullRequest
7 голосов
/ 29 января 2010

Я делаю XSL-преобразование. XML, который я преобразовываю, имеет узел, содержащий html.

<xml>
    <text>
        <p><b>Hello</b><em>There</em></p>
    </text>
</xml>

Применение преобразования:

<xsl:template match="text">
    <div class="{name()} input">
        <xsl:value-of select="."/>
    </div>
</xsl:template>

Я получаю вывод:

<div class="text input">
    Hello There
</div>

Но я хочу, чтобы Html оставался неизменным, вот так:

<div class="text input">
    <p><b>Hello</b><em>There</em></p>
</div>

Подстановка . функцией node () дает тот же результат.

Есть ли способ получить HTML с помощью неизмененного преобразования?

1 Ответ

11 голосов
/ 29 января 2010

Посмотрите на xsl: копия

Он должен делать то, что вам нужно ..

<xsl:copy-of select="." />

Выше будет выбран весь текущий узел, поэтому в вашем случае будет включен сам <text> ..

Используйте следующее, чтобы выбрать все под текущим ..

<xsl:copy-of select="child::node()" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...