Как я могу отредактировать этот файл xsl, чтобы он работал для всех браузеров - PullRequest
0 голосов
/ 03 декабря 2010

У меня есть один файл xsl, который включает фрагменты xhtml. Мне нужно удалить их, чтобы они стали совместимыми с браузером. Я пытался, но потом перестает работать. Вот оригинальный xsl:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:html="http://www.w3.org/1999/xhtml">
  <xsl:output omit-xml-declaration="yes" />
  <xsl:template match="messages">
    <html:ul>
      <xsl:apply-templates select="message" />
    </html:ul>
  </xsl:template>

  <xsl:template match="message[message]">
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li>
    <html:ul>
      <xsl:apply-templates select="message" />
    </html:ul>
  </xsl:template>

  <xsl:template match="message">
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li>
    <xsl:apply-templates select="message" />
  </xsl:template>
</xsl:stylesheet>

Я пытался удалить фрагменты xhtml таким образом, но он перестает работать и печатает «Нет информации о стиле» Что не так я сделал:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:output omit-xml-declaration="yes" />
  <xsl:template match="messages">
    <ul>
      <xsl:apply-templates select="message" />
    </ul>
  </xsl:template>
  <xsl:template match="message[message]">
    <li>message <xsl:value-of select="@emp_msg" /></li>
    <ul>
      <xsl:apply-templates select="message" />
    </ul>
  </xsl:template>

  <xsl:template match="message">
    <li>message <xsl:value-of select="@emp_msg" /></li>
    <xsl:apply-templates select="message" />
  </xsl:template>
</xsl:stylesheet>

Ответы [ 3 ]

0 голосов
/ 03 декабря 2010

Если опубликованный вами образец верен, вы пропустили > начального тега вашего <xsl:stylesheet> элемента. Надо сказать

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

Обратите внимание, что подсветка синтаксиса Stack Overflow помогает сделать это более очевидным.

Обновление : ОК ... в свете этого, сделайте то, что сказал Джим Гаррисон, если вы этого еще не сделали, но если оригинал работал нормально, вы должны это уже сделать.

Вы также можете попытаться убедиться, что тип содержимого исходного файла XML - это XML, если он извлекается через HTTP. А также попробуйте использовать

<xsl:output method="html" />

(возможно с omit-xml-declaration="yes").

0 голосов
/ 03 декабря 2010

Чтобы работать в браузере, вы должны включить ссылку на таблицу стилей Инструкция по обработке в начале XML-документа, например:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?>
<rootOfXmlDocument>
  ....

Атрибут href= должен указывать на таблицу стилей таким образом, чтобы браузер мог ее разрешить (т. Е. Это должен быть URL-адрес, который может быть выбран браузером).

0 голосов
/ 03 декабря 2010

Я вижу, у вас есть:

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

Попробуйте исправить синтаксис!

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...