Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器中的XML转换不起作用_Xml_Visual Studio 2010_Xslt - Fatal编程技术网

浏览器中的XML转换不起作用

浏览器中的XML转换不起作用,xml,visual-studio-2010,xslt,Xml,Visual Studio 2010,Xslt,我开发了一个XML样式表,用于在VS2010中转换一个相对简单的XML文件。在VS中运行XSLT调试时,它会在新窗口中呈现预期的输出 因此,我在源XML中添加了指向XSLT文件的链接: <?xml-stylesheet type="text/xsl" href="ABC.xslt"?> 但是,当我在浏览器中查看此文件时,不会得到转换后的结果。在IE9中,Firefox和Chrome XSLT(可能以修改过的形式)将被第三方用来生成最终的XML,因此它不是必需的,它可以工作——但

我开发了一个XML样式表,用于在VS2010中转换一个相对简单的XML文件。在VS中运行XSLT调试时,它会在新窗口中呈现预期的输出

因此,我在源XML中添加了指向XSLT文件的链接:

<?xml-stylesheet type="text/xsl" href="ABC.xslt"?>

但是,当我在浏览器中查看此文件时,不会得到转换后的结果。在IE9中,Firefox和Chrome

XSLT(可能以修改过的形式)将被第三方用来生成最终的XML,因此它不是必需的,它可以工作——但它是一个有用的工具,可以证明从out数据库(生成起始XML)输出的结果,一旦转换,将看起来像最终的XML

XML示例:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="abc.xslt"?>
<afterTreatmentSystemRequest>
    <afterTreatmentSystem>
        <ID>93073010005597</ID>
        <shipmentDate>20120330</shipmentDate>
        <technicalApprovalDate>20120330</technicalApprovalDate>
    </afterTreatmentSystem>
    <executionSettingsDate>2012-03-30T14:17:26</executionSettingsDate>
</afterTreatmentSystemRequest>

93073010005597
20120330
20120330
2012-03-30T14:17:26
XSLT:


更新: 我重新插入了XML和XSL段,确保它们与VS2010中运行良好的版本相匹配。按照Dimitre关于使用IE开发者工具(F12)的建议,我可以看到一些转换已经发生,但我仍然缺少executionSettings元素

预期产出:

<?xml version="1.0" encoding="utf-8"?>
<nsmajorassemblyai:storeAfterTreatmentSystemRequest category="MajorAssemblyAdapter" delta="true" version="2.10" xmlns:nsmajorassemblyai="http://majorassembly.mysite.com/ai">
  <requestHeader userId="d2vswen" />
  <afterTreatmentSystem delta="true" dataCardAvailable="true" id="93073010005597">
    <activeCustomer addressCity="" addressCountry="" addressStreet="" addressZip="" customerNumber="" firstname="" name="" />
    <activeProductDate shipmentDate="20120330" technicalApprovalDate="20120331" />
  </afterTreatmentSystem>
  <executionSettings causation="plant" issueThreshold="err" systemPriority="2" unresolvedConflictAction="notifyAdmin" userId="d2vswen" date="2012-03-30T14:17:26" />
</nsmajorassemblyai:storeAfterTreatmentSystemRequest>

使用IE9可以正确地执行转换,但不会显示结果,因为它不是HTML


要验证这一点,请单击F12并展开HTML选项卡中的元素。

在修复示例时删除了上一个答案

它适用于我,命令行上使用saxon6,浏览器中使用IE(9)


这将在VS中引发错误——XML不是格式良好的XML文档。请说对。如果仍然得到相同的结果,请确保文件
abc.xslt
与XML文件位于同一目录中。XML格式正确,并且两个文件都位于同一文件夹中。CJM:正如我在回答中所说,转换执行正常,可以验证这一点。浏览器不显示结果,因为它不是html。转换没有执行正常(请参阅对您的问题和OP的评论),但不幸的是,在我可以进行更新之前,您已经做出了响应!;)F12是我忽略的一个有用的技巧!它显示一些转换已经发生,但不是全部-executionSettings元素丢失。对不起,David-为了检查我的OP,我把它弄得更糟!我添加了错误的XSLT-现在已更正。好的,我将从我发布的XML/XSLT中重新构建XML,看看是否可以得到类似的结果。我不太确定我最初做错了什么,但我在VS中开发的XML+XSLT组合在IE9中的转换是正确的。我不记得曾经更改过VS版本,所以我只能假设在创建IE9测试版本时,最初复制的内容不正确。
<?xml version="1.0" encoding="utf-8"?>
<nsmajorassemblyai:storeAfterTreatmentSystemRequest category="MajorAssemblyAdapter" delta="true" version="2.10" xmlns:nsmajorassemblyai="http://majorassembly.mysite.com/ai">
  <requestHeader userId="d2vswen" />
  <afterTreatmentSystem delta="true" dataCardAvailable="true" id="93073010005597">
    <activeCustomer addressCity="" addressCountry="" addressStreet="" addressZip="" customerNumber="" firstname="" name="" />
    <activeProductDate shipmentDate="20120330" technicalApprovalDate="20120331" />
  </afterTreatmentSystem>
  <executionSettings causation="plant" issueThreshold="err" systemPriority="2" unresolvedConflictAction="notifyAdmin" userId="d2vswen" date="2012-03-30T14:17:26" />
</nsmajorassemblyai:storeAfterTreatmentSystemRequest>