由于缺少双引号,read_xml()抛出异常

时间:2012-05-15 03:29:00

标签: xml boost boost-propertytree

我使用boost :: property_tree对象解析xml,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <node attr="attr_str"/>
</root>

当我调用read_xml()来解析这个内容时,它运行良好。但是,如果我删除 attr 属性周围的双引号,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <node attr=attr_str/>
</root>

抛出 xml_parse_error 异常。

是否可以设置任何标志来忽略双引号的检查?

2 个答案:

答案 0 :(得分:0)

必须引用XML属性:

http://www.w3schools.com/xml/xml_attributes.asp

您将需要包含这些引号 - 否则它是无效的标记。

答案 1 :(得分:0)

XML的哲学中非常重要的一点是,获取内容的责任在于生产者而非消费者。这是因为生成正确的XML要比修复错误的XML容易得多,成本低得多;阅读XML比阅读XML的人多得多。如果你发现自己被那些不了解这种质量态度的人所产生的XML(或非XML)所困扰,那么你就会遇到一个棘手的问题。