【问题标题】:Displaying XML using CSS: How to handle &nbsp?使用 CSS 显示 XML:如何处理 &nbsp?
【发布时间】:2012-08-02 23:35:44
【问题描述】:

我正在处理很多 .xml 文件。 (百万 - 维基百科的 .xml 格式转储),它们比我想象的更难以阅读。

目前,我编写了一个 .css 文件以在浏览器中以可读的方式显示它们,并编写了一个脚本来将此 .css 的引用插入到所有文件中。

(我知道还有其他解决方案,例如 XSLT - 但我发现的所有信息使它看起来不适合文档级别 - 如果可能,我真的尽量不扩大这些文件的大小)

.css 适用于 一些 文件,但许多包含像 &nbsp 这样的实体,我收到如下错误:

"XML Parsing Error: undefined entity" 带有一个漂亮的小插图,指向 &nbsp 或者它在引用中的亲属。

有一个articles.dtd 文件,它似乎应该连接浏览器的点(关键字-> Unicode)。它在每个文件中都被引用,例如:

 <!DOCTYPE article SYSTEM "../article.dtd">

并包含很多条目,例如:

<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
                              U+00A0 ISOnum -->

但是要么我完全误解了这个文件的用途,要么它不能正常工作。

无论如何;我怎样才能让这些文件显示出来;通过:

  • 显示实体(如“&nbSp”作为纯文本)
  • 完全删除实体(通过任何方式,除了在实际文件中线性搜索/删除它们)
  • 按照预期将实体解释为 unicode

当然,后者更可取;绝对理想的是,通过引用某种将身份映射到 Unicode 的外部文件(如果这不是articles.dtd 文件的用途......)

编辑:我在这里没有使用功能强大的机器.. 提取 .rars 需要几天时间。对每个文件进行任何形式的编辑都需要很长时间。

【问题讨论】:

  • 除了所有其他类似的问题,这个问题是在 2 小时前提出的 stackoverflow.com/questions/11341862/how-to-avoid-in-xml
  • 好的,谢谢。我发现了这个问题,等等;但它的解决方案适用于我的情况,仅提供了一种替代方案,可以替代我线性搜索/删除实体的最后选择。我觉得我的问题的背景不同,足以证明它自己的问题。

标签: css xml dtd


【解决方案1】:

这不是很好的方法,只是解决方法:尝试将&amp;nbsp;替换为&amp;#160;

【讨论】:

  • 是的,当我说“完全删除实体”时,这就是我所暗示的。请记住,我这里有数百万个未编入索引的文件。任何形式的查找替换都需要很长时间......
【解决方案2】:

所以我已经解决了我的问题:如果将来对任何人有帮助:

原来我的问题的核心是外部 .dtd 文件已完全弃用。

.dtd 的功能实际上是声明我遇到问题的实体(等),正如我所想的那样;但是因为浏览器不再支持外部 .dtd 文件(浏览器根本不获取/解析它们 - 强制它们依赖于客户端计算机上安装浏览器的文件的唯一方法)实体去未申报。

我采购了一个 .XML 集合,它太旧而无法达到标准;没有意识到。

结果证明,最适合我情况的解决方案是对每个请求的文件进行延迟处理。用一个简单的标志来区分已处理和未处理。

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 2023-03-05
    • 1970-01-01
    • 2015-11-04
    • 2021-07-31
    • 1970-01-01
    • 2019-03-16
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多