-1

我使用 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异常。

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

4

2 回答 2

0

必须引用 XML 属性:

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

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

于 2012-05-15T03:33:07.123 回答
0

获得正确内容的责任在于生产者而不是消费者,这在很大程度上是 XML 哲学的一部分。这是因为生成正确的 XML 比修复错误的 XML 更容易也更便宜。阅读 XML 的人比编写它的人多得多。如果您发现自己被那些不了解这种对质量态度的人所生成的 XML(或者更确切地说是非 XML)所困扰,那么您就会遇到一个棘手的问题。

于 2012-05-15T07:39:30.327 回答