QDomElement:设置布尔属性

时间:2014-10-29 15:44:12

标签: xml qt

有没有理由说QDomElement没有这个功能:

void setAttribute(const QString & name, bool value);

我在代码中要做的事情就像:

element.setAttribute("boolean_attribute", this->booleanValue() ? "true" : "false");

可怕,但我看不到替代品......

2 个答案:

答案 0 :(得分:1)

如果您查看x {的boolean data type,则说明: -

  

注意:布尔值的合法值为true,false,1(表示true)和0(表示false)。

如果将值设置为true,false和1都表示为true,则可能会产生误导。我希望由于这个原因你的建议函数不存在,所以必须在这里隐式处理这个值。

答案 1 :(得分:0)

使用01代替"true""false"。例如:

        if(e.attribute("value").toInt())
            qDebug() << "it is true";
        else
            qDebug() << "it is false";

用行显示正确的结果:

<Attribute value="0"/><Attribute value="1"/>

我认为它比比较字符串更好。 setAttribute支持int

编辑:

attribute()返回QStringQString没有方法toBool或类似的内容,因此提供支持编写bool的方法毫无意义我们将来无法正确阅读。