преобразование HTML в XML и XSLT - PullRequest
1 голос
/ 15 ноября 2011

я пытаюсь кодировать XSLT и xml ..

одна из проблем, с которыми я сталкиваюсь, заключается в том, что я действительно получаю значения моего xslt-файла из xml-файла, одно из полей, например, description, имеет html-теги

           <span class="text"><xsl:value-of select=BusinessDescription"  >
                </xsl:value-of></span><br />

поэтому его вывод, включая html-теги, такие как

                    <p> Hello there,</P>
                        <b>Hotel</b>

Как мне преобразовать HTML в веб-браузере, чтобы показать вывод тегов HTML?

как

Привет,

Hotel

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Если я хорошо понимаю этот вопрос, вы спрашиваете, как интерпретировать экранированную разметку не как текст, а как разметку.

Ответ :

Это не может быть сделано в чистом XSLT 1.0 или XSLT 2.0 (в XSLT 3.0 / XPath 3.0 может быть функция для анализа строки как XML).

Для этого вам нужно написать функцию расширения, которая принимает строку, анализирует ее как XML-документ и возвращает полученный XML-документ.

Следовательно, вместо :

<xsl:value-of select="BusinessDescription"/>

код, который использует эту функцию расширения, будет выглядеть примерно так :

<xsl:copy-of select="my:xml-parse(BusinessDescription)"/>

Сама функция расширения будет записана на вашем любимом PL и просто создаст объект XmlDocument и попытается загрузить строку (с помощью метода, такого как LoadXml()), а затем вернуть это XmlDocument как результат.

0 голосов
/ 15 ноября 2011

Если бы вы могли опубликовать XSL и XML (постарайтесь уменьшить их до наименьшего кода, который все еще создает проблему), мы могли бы дать более точный ответ. Одна вероятная возможность состоит в том, что ваш XSL не производит теги <html><body>...</body></html>.

Ваш HTML-контент должен быть заключен в элемент <body> ... </body>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...