jjzjj

txmldocument

全部标签

xml - 释放时 TXMLDocument 'Invalid pointer operation'

我正在使用TXMLDocument编写一个在网络服务器中使用的XML字符串。当服务器收到请求时创建组件,生成XML,将其传递回客户端,然后组件被释放。然而,当这个组件被释放时,我得到了Invalidpointeroperation。XML:=TXMLDocument.Create(nil);tryXML.Active:=True;nRoot:=XML.AddChild('topics');forX:=0toFCHM.Topics.Count-1dobeginnTopic:=nRoot.AddChild('topic');//Addmoredata...end;Response.Cont

xml - 我如何使用 TXMLDocument 将版本和编码添加到 xml 文件

我想将版本和编码添加到使用TXMLDocument组件创建的xml文件目前我正在做这个XmlDoc:=TXMLDocument.Create(nil);XmlDoc.Version:='1.0';XMLDoc.Encoding:='utf-8';但是我在这一行收到了访问冲突XmlDoc.Version:='1.0';如何添加版本和编码? 最佳答案 在修改XML文档属性之前,您必须将Active属性设置为True。XmlDoc:=TXMLDocument.Create(nil);XmlDoc.Active:=True;XmlDoc.V

vcl - C++ 生成器 XE2,TXMLDocument 'DTD is prohibited'

当我尝试读取带有DTD的XML文档(eagle文件)时出现错误:ProjectxxraisedexceptionclassEDOMParserErrorwithmessage'DTDisprohibited'XMLheader如下所示:如果我删除第二行......一切正常。经过一些谷歌搜索后,似乎MSXML解析器有一个名为“prohibitDTD”的选项默认设置为true(在早期版本中它是false)。但是似乎无法从TXMLDocument类将此选项设置为false。一种解决方案似乎是重新编译.pas库或使用CoCreateInstance()自行创建接口(interface)。我看到

xml - 如何使 TXMLDocument(使用 MSXML 实现)始终包含编码属性?

我有遗留代码(不是我写的)始终包含编码属性,但将其重新编译为D2010,TXMLDocument不再包含编码。因为XML数据在标签和数据上都有重音字符,所以TXMLDocument.LoadFromFile只是抛出EDOMParseErros说在文件中发现了无效字符。相关代码:Doc:=TXMLDocument.Create(nil);tryDoc.Active:=True;Doc.Encoding:=XMLEncoding;RootNode:=Doc.CreateElement('Test','');Doc.DocumentElement:=RootNode;//Result:=Do

xml - EOutOfMemory 在 Delphi 中使用 TXMLDocument 解析大型 XML

我有一个大的XML文件要在代码中解析,如下例所示。问题似乎是分配给子节点(IXMLNode)的内存未释放,即使子节点超出范围也是如此。内存似乎只有在父TXMLDocument被停用(Active:=false)或被释放后才会被释放。所以我的代码,在加载xml文档后开始大约380Mb,突然增加到2Gb,这就是它结束的地方。将childnode设置为nil对内存使用没有影响。我的问题是如何显式释放分配给IXMLNode接口(interface)的内存。我不愿意使用不同的XML对象,我想我已经尝试了几乎所有方法来控制节点接口(interface)的范围。varchildnode:IXMLNo
12