使用xsl样式表的xml doc前三行的正确内容

时间:2015-10-22 12:49:29

标签: c# html css xml xslt

我继承了一个报告生成器,它使用xsl / css创建一个xml文件并对其进行格式化。我对网页创建不是很熟悉。 .html文件由以下代码行创建:

xslt.Transform(XmlReader.Create(xmlStream), writer);

并显示在.NET 4.5.2 System.Windows.Controls.WebBrowser对象中。报告看起来不错。也可以在IE 11中很好地呈现,而在Firefox中也不是很好(缺少一些背景颜色)。

更重要的是,用户报告使用Adobe Acrobat将.html转换为.pdf时出现问题(某些图片大小不正确),因此我正在调查.html格式的质量。我在Visual Studio 2013中打开了由报告生成器创建的.xml文件,它标记了前两行有问题:

<?xml:stylesheet type="text/xsl" href="mydir\report.xsl" ?>
<?xml version="1.0"?>
<MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

第一行标记有错误:&#34;处理指令目标中的字符无效&#34; 第二行标记有错误:意外的XML声明。 XML声明必须是文档中的第一个节点,不允许在其前面显示空白字符。&#34;

如何构建这些行以使Visual Studio满意(当然,不会降低最终结果)。

如果它有用,这是report.xsl的第一行:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

Visual Studio似乎对该文件感到满意。

谢谢。

1 个答案:

答案 0 :(得分:0)

首先需要XML声明,处理指令应该是xml-stylesheet

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="mydir/report.xsl" ?>
<MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">