qt xml组包_使用Qt使用外部实体读取和验证xml文档

博主在尝试使用Qt的QDomDocument和QXmlSchemas处理包含外部实体的XML文件时遇到困难。QDomDocument未能正确解析外部实体,而XML验证过程中遇到错误,提示'Element doc is missing child element'。问题可能在于QtXml模块对外部实体的支持或验证过程中的配置。
摘要由CSDN通过智能技术生成

我正在尝试阅读和验证具有外部实体的xml文档.但是我在阅读和验证方面都没有成功.

我使用this创建一个测试示例.

测试xml:

]>

&otherFile;

其他xml:

this is my content

测试XSD:

首先,我尝试使用QDomDocument读取test.xml的内容:

QDomDocument doc;

doc.setContent(&testFile);

qDebug() << doc.toString();

但是在调试输出中,我从test.xml获取原始文本.外部实体不会被替换.

然后,我尝试针对test.xsd验证test.xml:

QXmlSchema schema;

bool res = schema.load(&xsdFile, QUrl::fromLocalFile(xsdPath));

if (res == true)

{

QXmlSchemaValidator validator(schema);

if (validator.validate(&xmlFile, QUrl::fromLocalFile(xmlPath)))

{

qDebug() << "xml" << xmlName << "is valid";

}

else

{

qDebug() << "xml" << xmlName << "is invalid";

}

}

但是验证失败,并且出现以下错误:

Error XSDError in file:///..., at line 5, column 5: Element doc is missing child element.

我是在做错什么还是Qt Xml模块不支持外部实体?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值