【发布时间】:2012-06-21 12:20:27
【问题描述】:
这既是一个 Qt 问题,也是一个 XML 问题:为什么以下对 foo 元素的 attr 属性的命名空间 uri 的测试会失败?
{
const QString test("<foo xmlns='http://example.org/ns' attr='value'><empty/></foo>");
QXmlStreamReader r(test);
QVERIFY(r.namespaceProcessing());
QVERIFY(r.readNextStartElement());
QCOMPARE(r.name().toString(), QLatin1String("foo"));
QCOMPARE(r.namespaceUri().toString(),
QLatin1String("http://example.org/ns"));
QVERIFY(!r.attributes().isEmpty());
QCOMPARE(r.attributes().front().name().toString(),
QLatin1String("attr"));
// FAIL, namespaceUri() is empty:
QCOMPARE(r.attributes().front().namespaceUri().toString(),
QLatin1String("http://example.org/ns"));
}
这是 QXmlStreamReader 错误,还是 XML 属性通常不在使用 xmlns 声明的命名空间中?
【问题讨论】:
标签: xml qt xml-namespaces qxmlstreamreader