XML解析器不会抱怨,但XMLeditor会抱怨空属性
-
05-07-2019 - |
题
我有一个程序使用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;结尾然后补充说,现在一切似乎都没问题......跛脚,但目前我的需求还可以