草庐IT

delphi-xe

全部标签

xml - Delphi:无效的 XML 通过 MSXML 验证

我已尝试在MSDN上重新编写一个JScript示例,以便根据某些模式验证XML。作为第一次尝试,我使用了示例中使用的sl-valid.xml、sl-notValid.xml和sl.xsd文件。我的代码如下:procedureBasicValidation(FileName:string);varXML:IXMLDOMDocument2;begin//LoadXMLandresolveexternalsXML:=ComsDOMDocument.Create;XML.async:=False;XML.validateOnParse:=True;XML.resolveExternals:=T

xml - Delphi 类到 XML 表示 :

使用德尔福XE:XML数据绑定(bind)向导生成基于XML/XSD的Delphi类-效果很好。但是我还需要走另一条路:将Delphi类转换为XML。我在XE中找不到对此的任何支持。(我知道用C#、.NET很容易完成,但很明显,因为Delphi并不真正支持反射,所以比用C#更难)我确实有一个选择是使用SharpDevelop在C#中编写类,并使用MS实用程序(我相信它是免费下载的)从C#代码生成XML。我也有支持此功能的VS2005,但尚未安装,我不想参与其中。有人对如何完成这项工作有任何建议:直接从Delphi到XML/XSD?一个开源工具会很好,或者一些好的单元可以做到这一点。

python - Unicode解码错误: 'utf-8' codec can't decode byte 0xe2 in position 434852: invalid continuation byte

我正在使用hfcca计算C++代码的圈复杂度。hfcca是一个简单的python脚本(https://code.google.com/p/headerfile-free-cyclomatic-complexity-analyzer/)。当我尝试运行脚本以生成xml文件形式的输出时,出现以下错误:Traceback(mostrecentcalllast):"./hfcca.py",line802,inmain(sys.argv[1:])File"./hfcca.py",line798,inmainprint(xml_output([fforfinr],options))File"./hf

xml - 如何使用 Delphi 管理从 EXE 的多个实例对 XML 文件的并发输入/输出访问。

我有一个命令行工具,用Delphi写的,它的工作是在XML文件中插入一个节点,然后立即退出。我需要使该工具的多个实例能够同时执行并将节点插入到同一个XML中。为了达到这个目的,我引入了一个简单的文件“mutex”——该工具在写入XML之前创建一个临时文件,然后在完成写入后删除该临时文件。因此,如果执行另一个实例,它会检查此临时文件是否存在并等待直到它被删除。然后它再次创建临时文件,写入XML并删除临时文件。问题是只有当2-3个实例尝试同时写入XML文件时,这才能正常工作。当有更多实例时-其中一些实例只会永远等待并且永远不会将节点附加到XML中。有没有更好的方法让它在同时运行和写入XML

xml - 如何使用delphi搜索和替换xml文件中的标签值?

如何使用Delphi在XML文件中搜索和替换标签值?我知道XML标签是什么,但该值是随机的,只需将其重置为默认值即可,因此实际上我不能/不应该搜索该值,而只能搜索标签。我也知道文件的位置。我是Delphi的新手,有人可以为我提供一个简单的例子来说明如何做到这一点吗?提前谢谢你。 最佳答案 我将使用Delphi的IXMLDocument加载XML文件,并使用该文档替换元素。像这样:usesXMLDoc,XMLIntf;procedureChangeTag(constfilename:String);vardoc:IXMLDocumen

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 - 通过 Delphi XML 数据绑定(bind)向导使用 XML 枚举

我有一个使用枚举的XML模式,但是当我在Delphi中查看生成的XML对象时,枚举限制已被删除。有没有办法让Delphi生成枚举并将其构建到对象中?XSD片段:我希望在Delphi中看到的是一个接受枚举的字段,然后在生成XML时将其转换为相应的字符串,但该字段只是一个普通字符串。 最佳答案 您可以做的是使用与名称相同的字符串常量创建您自己的枚举类型,并将单元TypInfo与函数GetEnumValue和GetEnumString一起使用。这允许您像在其他Delphi代码中一样在名称前加上几个小写字母:Value:=TMyEnum(G

xml - Delphi 由于枚举名称中的连字符导致错误导入 WSDL,我该怎么办?

我正在使用Delphi并使用来自另一家公司的wsdl文件来设置我的代理类以使用来自他们的Web服务的数据。wsdl文件包含以下内容:Enumeratesallowabledeparturestatuses(DEPARTED,NOT-DEPARTED)当我生成代理类时,我得到以下信息:departStatus=(DEPARTED,[System.Xml.Serialization.XmlEnumAttribute('NOT-DEPARTED')]NOTDEPARTED);除非我删除以[System.xml...开头的行,否则它不会编译,并且它不会将“NOT-DEPARTED”识别为dep

xml - 是否有支持泛型的 Delphi 对象序列化库?

我所知道的所有开源对象序列化库(JvAppStorage、NativeXml、OmniXML、SuperObject、lkJSON)似乎还不支持泛型属性。(如有错误请指正)。你知道有这个功能或计划添加它的图书馆吗?Delphi2010中的JSON序列化库怎么样(我还在用Delphi2009)例子...publishedpropertyProp1:TObjectListreadGetProp1writeSetProp1;... 最佳答案 看看我在这篇文章中使用JCL/JVCL序列化器的简单解决方案:HowtoserializeDelp