Проблема XSLT во время преобразования - PullRequest
1 голос
/ 22 сентября 2010
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"  
    version="1.0"  
    xmlns:ms="urn:schemas-microsoft-com:xslt" 
    xmlns:infoRequest="ControlSkin3" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    exclude-result-prefixes="xmlns">

    <xsl:output omit-xml-declaration="yes" method="xml" encoding="utf-8" />

У меня возникла проблема при преобразовании в xhtml, некоторые элементы, подобные этому: xmlns: ms = "urn: schemas-microsoft-com: xslt" вставлены во многие теги xhtml.*

ex:

<script type="text/javascript" src="/style/js/etablissement/videos.js" 
    xmlns:infoRequest="ControlSkin3" 
    xmlns:ms="urn:schemas-microsoft-com:xslt" ></script>

Я работаю над IIS6.и у меня нет объяснений.

У вас уже была такая же проблема?Что не так с моим кодом?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 сентября 2010

exclude-result-prefixes = "xmlns">

Что не так с моим кодом?

Это не очень важно, так как нетПрефикс пространства имен в таблице стилей XSLT с именем "xmlns".

С другой стороны, существуют существующие префиксы: "ms", "infoRequest" и "xsl".

Если эти префиксыЕсли в качестве значения атрибута exclude-result-prefixes указан пустой список, то они не будут присутствовать в сериализации (выводе) какого-либо буквального элемента результата.

Например, :

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
    version="1.0"
    xmlns:ms="urn:schemas-microsoft-com:xslt"
    xmlns:infoRequest="ControlSkin3"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    exclude-result-prefixes="ms infoRequest xsl">

    <xsl:output omit-xml-declaration="yes" method="xml" encoding="utf-8" />

    <xsl:template match="/">
      <html>
        <head>
          <script type="text/javascript" src="/style/js/etablissement/videos.js">
            /* Script code here */
          </script>
        </head>
      </html>
    </xsl:template>
</xsl:stylesheet>

когда выполняется это преобразование (для любого исходного XML-документа - не используется), результат не содержит нежелательных пространств имен :

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="/style/js/etablissement/videos.js">
            /* Script code here */
        </script>
    </head>
</html>
3 голосов
/ 22 сентября 2010

Вы можете исключить эти пространства имен, подавив их с помощью атрибута exclude-result-prefixes. Вам необходимо перечислить префиксы пространства имен, разделенные пробелами:

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"  
    version="1.0"  
    xmlns:ms="urn:schemas-microsoft-com:xslt" 
    xmlns:infoRequest="ControlSkin3" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    exclude-result-prefixes="infoRequest ms">
...