我有一个程序使用XSL-FO(org.apache.fop.apps.Driver)从XML文件生成PDF打印。

我正在研究Stylesheets(xsl)&我正在努力使调试更容易。我有XML& XSL文件,现在我只想让我的编辑器向我展示生成的PDF,因为我正在处理XSL文件。

我尝试了几位编辑&他们给出了程序似乎没有问题的错误。

似乎问题在于编辑希望看到:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

而程序生成的实际XML是

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

正如你可以看到空attr_value明显缺少 =&quot;&quot; - 我有没有办法让编辑器不那么严格?那么它可以像我的程序那样生成PDF吗?

有帮助吗?

解决方案

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

如前所述,该行无效。认为可以的程序可能正在使用它自己的自定义XML解析器,它将忽略这些无效的属性。这使我怀疑创建该程序的人的编程质量。在我看来,他们只是通过XML-DOM机制将这个XML写成文本。不过,这应该没问题,但不幸的是,他们的代码有一个错误。

大多数 - 如果不是全部 - XML编辑器,解析器和转换器将在处理之前验证XML。所以不幸的是,没有很好的解决方案来解决XSLT文件中的这个问题。使用RegEx,您可以通过附加=&quot;&quot;删除无效属性或使其有效。对他们来说,但是在XSLT验证XML之前没有办法做到这一点。

要解决此问题,需要更改程序以生成有效的XML。因为现在,这可能被认为是一个非常严重的错误。 (除非程序仅将此伪XML用于内部目的。)

其他提示

带有attr_value和no =的XML无效 W3C XML规范所有XML工具都应该抱怨。你用的是什么工具?

好的,我刚刚使用了Regular Expression Find&amp;替换所有属性名称,如果它们不以=&quot;&quot;结尾然后补充说,现在一切似乎都没问题......跛脚,但目前我的需求还可以

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top