XSLT Firefox URI выпуск - PullRequest
       1

XSLT Firefox URI выпуск

1 голос
/ 19 сентября 2011

Я работаю с xml / xsl, и я реализовал ссылку. Ссылка ссылается на другой файл XML. С браузером Firefox я не могу открыть ссылку. Я искал в сети и обнаружил, что вы должны добавить file:// к ссылке.

Это действительно хорошо работает для абсолютных путей, но с относительными путями не может разрешить ссылку. Пример кода:

file1.xml в папке D: / try

  <?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="file:///D:/try/layout.xsl"?>
   <s1>
     <s>
      <uri>D:/tt.xml</uri>
     </s>
   </s1>

layout.xsl в папке D: / try

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml">

  <xsl:output method="html" indent="yes" encoding="UTF-8"/>

  <xsl:template match="/">
    <html>
      <xsl:element name="body">
          <xsl:apply-templates select="s1"/>
      </xsl:element>
    </html>
  </xsl:template>


  <xsl:template match="s1">
    <xsl:apply-templates select="s"/>
  </xsl:template>

  <xsl:template match="s">
    <table>
      <tr><th>Uri: </th><td>
        <xsl:element name="a">
          <xsl:attribute name="href"><xsl:value-of select="uri"/></xsl:attribute>
          <div><xsl:value-of select="uri"/></div>
        </xsl:element>
      </td></tr>
    </table>
  </xsl:template>

</xsl:stylesheet>

tt.xml в папке D: / try

<?xml version="1.0" encoding="UTF-8"?>
<s1>
  <s>
    <h1>HELLO</h1>
  </s>
</s1>

Если вы замените uri D:/tt.xml в file1.xml на относительный путь tt.xml, он будет работать.

Я хотел бы иметь функцию, которая преобразует URI в приемлемый формат.

С уважением, Marky

1 Ответ

0 голосов
/ 20 сентября 2011

Тем временем я получил это:

        <xsl:if test="regexp:match(uri, '^.[^:].*', 'g')">
          <xsl:element name="a">
            <xsl:attribute name="href"><xsl:value-of select="uri"/></xsl:attribute>
            <div><xsl:value-of select="uri"/></div>
          </xsl:element>
        </xsl:if>
        <xsl:if test="regexp:match(uri, '.*:.*', 'g')">
          <xsl:element name="a">
            <xsl:attribute name="href"><xsl:value-of select="concat('file://',uri)"/>        
            </xsl:attribute>
            <div><xsl:value-of select="uri"/></div>
          </xsl:element>
        </xsl:if>

Но я не думаю, что это лучшее решение.

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