我有一个XML资源在处理指令中引用了XSLT样式表,它有一个href
属性。该属性的URL可以有一个查询字符串参数,也可以没有。但是,当URL有多个查询字符串参数时,浏览器似乎甚至不获取样式表。为什么会发生这种情况?
我的意思是,首先,我有一个从this w3schools example改编而来的XML/XSLT文件,保存到本地磁盘,分别为scratch.xml
和style.xml
,我编辑了这个XML文件,在靠近顶部的地方(第二行)添加了以下处理指令:
<?xml-stylesheet href="style.xsl" type="text/xsl"?>
我正在此目录中运行Web服务器,使用:
python3 -m http.server
如果我在浏览器http://localhost:8000/scratch.xml中获取XML文件,它会获取样式表并进行良好的呈现,如果我更改href
属性并添加一个查询字符串参数,则它看起来如下所示:
<?xml-stylesheet href="style.xsl?foo=1" type="text/xsl"?>
它会读取样式表并很好地呈现。但是,如果我更改href
属性并添加一个参数,则它看起来如下所示:
<?xml-stylesheet href="style.xsl?foo=1&bar=2" type="text/xsl"?>
浏览器甚至停止尝试获取样式表。这种情况在Chrome和Firefox中都有发生。我通过嗅探流量验证了它甚至没有请求样式表:
ngrep -d lo port 8000
老实说,我觉得很困惑。
我试过至少两种不同的浏览器,也试过至少两种不同的web服务器(nginx和python服务器),我完全没有想到样式表URL的形式会有影响。
1条答案
按热度按时间pkln4tw61#
您的XML格式不正确,因为
&
字符需要转义为&
。