2016-03-08 2 views
1

У меня есть оба файла в одной локальной папке. Файл XML - 1.xml, а файл xsl - 1.xsl. Когда я открываю xml в Chrome, он показывает пустое, а для файла xsl он дает это сообщение: «Этот XML-файл не имеет никакой связанной с ним информации о стиле. Дерево документов показано ниже». и XML-дерево.Chrome не применяет мою таблицу стилей XSLT к моему локальному файлу XML

Это мой XML

 <?xml version="1.0"?> 
     <?xml-stylesheet type="text/xsl" href="1.xsl"?> 

     <myBcollection> 
     <businesscard> 
     <organisation>V of S</organisation> 
     <address> 
      <no>42</no> 
      <street>Foster Street</street> 
      <city>Sydney</city> 
      <county>sss</county> 
     </address> 
     <contactdetails> 
      <contactNo type="landline">+94 71232312</contactNo> 
      <fax>313234</fax> 
      <email>[email protected]</email> 
     </contactdetails> 
     <website uri="http://w3.org"/> 
    </businesscard> 

    <businesscard> 
     <organisation>Org 2</organisation> 
     <address> 
      <no>42</no> 
      <street>Foster Street</street> 
      <city>Sydney</city> 
      <county>sss</county> 
     </address> 
     <contactdetails> 
      <contactNo type="landline">1232312</contactNo> 
      <fax>313234</fax> 
      <email>[email protected]</email> 
     </contactdetails> 
     <website uri="http://w3.org"/> 
    </businesscard> 

    <businesscard> 
     <organisation>Org 3</organisation> 
     <address> 
      <no>42</no> 
      <street>Foster Street</street> 
      <city>Sydney</city> 
      <county>sss</county> 
     </address> 
     <contactdetails> 
      <contactNo type="landline">+94 71232312</contactNo> 
      <fax>313234</fax> 
      <email>[email protected]</email> 
     </contactdetails> 
     <website uri="http://w3.org"/> 
    </businesscard> 
</myBcollection> 

И это мой XSL

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

    <xsl:template match="/"> 
    <html> 
    <body> 

    <table border="1"> 
     <tr> 
     <th>Org nm</th> 
     <th>Adress Street</th> 
     <th>City</th> 
     <th>County</th> 
     <th>Fax</th> 
     </tr> 

     <xsl:for-each select="/"> 

     <tr> 

     <td><xsl:value-of select="myBcollection/businesscard/organisation"/></td> 
     <td><xsl:value-of select="myBcollection/businesscard/address/street"/></td> 
     <td><xsl:value-of select="myBcollection/businesscard/address/city"/></td> 
     <td><xsl:value-of select="myBcollection/businesscard/address/county"/></td> 
     <td><xsl:value-of select="myBcollection/businesscard/contactdetails/fax"/></td> 
     </tr> 
     </xsl:for-each> 
    </table> 

</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 
+0

Я тестировал его с помощью 'firefox', и все работает так, как ожидалось. Может быть проблемой безопасности «chrome» с преобразованием на стороне клиента XSLT. Например, NoScript блокирует это в 'firefox'. Попробуйте отключить некоторые параметры безопасности для 'file: /// ...'. – zx485

+0

http://stackoverflow.com/questions/2981524/how-can-i-make-xslt-work-in-chrome –

+1

Это настройки безопасности Chrome. Вы не можете использовать локальные таблицы стилей XSL, как это; таблица стилей должна быть на веб-сервере и на том же сервере, что и ваш XML. – Flynn1179

ответ

0

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

<?xml version="1.0" encoding="UTF-8"?> 
<note> 
    <style xmlns="http://www.w3.org/1999/xhtml"> 
     to, from, heading, body {display: block; } 
    </style> 
    <to>Tove</to> 
    <from>Jani</from> 
    <heading>Reminder</heading> 
    <body>Don't forget me this weekend!</body> 
</note> 
Смежные вопросы