2

我有这个 XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
  <g id="icon">
    <path d="M14.7,15.5H1.3c-0.4418,0,-0.8,-0.3582,-0.8,-0.8V1.3c0,-0.4418,0.3582,-0.8,0.8,-0.8h13.4c0.4418,0,0.8,0.3582,0.8,0.8v13.4C15.5,15.1418,15.1418,15.5,14.7,15.5z" fill="#FFFFFF" stroke="#6D6E71" stroke-width="1" stroke-miterlimit="1"/>
    <rect x="2" y="2" width="6" height="6" fill="#4EA17E"/>
    <rect x="8" y="2" width="6" height="6" fill="#EAB765"/>
    <rect x="8" y="8" width="6" height="6" fill="#6799D1"/>
    <rect x="2" y="8" width="6" height="6" fill="#A491C5"/>
  </g>
</svg>

当我尝试在 中加载此 XML 时TXMLDocument,出现异常“DTD is disabled”(已翻译):

Doc := TXMLDocument.Create(Application);
try
  Doc.LoadFromXML(AXML); // Exception: "DTD is prohibited"

我怎样才能避免这个错误?

4

1 回答 1

2

这工作和编译良好:

initialization
  Xml.Win.msxmldom.MSXMLDOMDocumentFactory.AddDOMProperty('ProhibitDTD', False);
于 2021-03-01T10:13:19.483 回答