【问题标题】:Delphi won't parse external DTD fileDelphi 不会解析外部 DTD 文件
【发布时间】:2015-10-13 16:51:59
【问题描述】:

我有一个这样的 XML(简化版以便于理解):

<?xml version="1.0"?>
<PubmedArticleSet>
<PubmedArticle>

    <MedlineCitation Owner="NLM" Status="In-Process">
    </MedlineCitation>

    <PubmedData>
    </PubmedData>

</PubmedArticle>
</PubmedArticleSet>

我想从它的 DTD 开始创建一个 XML 解析器,使用 Delphi 的“XML 数据绑定”向导。
问题是“MedlineCitation”的描述在外部 DTD 中:

<!ENTITY % Medline PUBLIC "-//NLM//DTD Medline, 01 Jan 2015//EN"  "nlmmedlinecitationset_150101.dtd">
%Medline;

第二个 DTD 文件与主 DTD 位于同一文件夹中。
向导会将“MedlineCitation”视为/解析为一个简单的字符串。显然,当我运行程序并尝试读取“MedlineCitation”时,它会崩溃并显示消息“Element MedlineCitation 不包含单个文本节点”。


DTD 1(主)
http://www.ncbi.nlm.nih.gov/corehtml/query/DTD/pubmed_150101.dtd

DTD 2 ('MedlineCitation')
http://www.ncbi.nlm.nih.gov/corehtml/query/DTD/nlmmedlinecitationset_150101.dtd

【问题讨论】:

    标签: xml delphi xml-parsing schema delphi-xe


    【解决方案1】:

    使用“大锤”方法解决。我只是将 DTD 2 文本粘贴到 DTD 1 中(稍作修改)。

    这完全有效,但有点“蛮力”。如果您有更好的解决方案,请发布,我会接受您的回答。

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多