代码之家  ›  专栏  ›  技术社区  ›  mjn anonym

如何用Delphi读取DOCTYPE系统标识符?

  •  2
  • mjn anonym  · 技术社区  · 15 年前

    对于DOCTPYE声明如下的文档

    <!DOCTYPE RootElement SYSTEM "file.dtd">
    

    Delphi 2009使用MSXML报告systemId为空(“”):

    Assert(Doc.DOMDocument.doctype.systemId <> ''); // fails!
    

    虽然

    Assert(Doc.DOMDocument.doctype.name = 'RootElement'); // ok
    

    正确验证DOCTYPE name id“RootElement”。

    这是Delphi(或我的代码)中的错误还是我使用的MSXML版本不支持此属性?

    2 回复  |  直到 15 年前
        1
  •  1
  •   bobince    15 年前

    MSXML的DocumentType实现完全缺少DocumentType属性 publicId systemId internalSubset . MSDN api ref MS-DOM2CX

    如果需要这些信息,您可能需要尝试不同的DOM实现。这里是 one System.Xml 我也支持它。

        2
  •  0
  •   Ondrej Kelle    15 年前

    万一 ProhibitDTD 属性为True请尝试将其设置为False。

    这里有一个 article

    推荐文章