我想使用 XQuery 解析存储在 QString expected_xml 中的以下 xml(获取类型 ID 和测试输出等),
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TEST_XML>
<TEST TEST_VERSION="14">
<TEST_TYPES>
<TEST_TYPE ID="0"/>
<TEST_TYPE ID="1"/>
</TEST_TYPES>
<TEST_QUERY_LIST PROP="0">
<TEST_QUERY_FILE>"C:/Files/File.txt"</TEST_QUERY_FILE>
</TEST_QUERY_LIST>
<TEST_OUTPUT>
<FILE PATH="C:/Files/File2.txt" TEST_TYPE_ID_REF="1">
<USED_BY TEST_PATH="C:/Files/File2.txt" ALIAS="thisData"/>
</FILE>
</TEST_OUTPUT>
</TEST>
例如,我使用以下代码获取 Id,但这并没有给我任何东西。我错过了什么非常明显的东西吗?
//Test Parsing
QByteArray xmlByteArry;
QBuffer device(&xmlByteArry);
device.setData(expected_xml.toUtf8());
device.open(QIODevice::ReadOnly);
QXmlQuery query;
query.bindVariable("xmlByteArry", &device);
query.setQuery("doc($xmlByteArry)//TEST/TEST_TYPES");
if(query.isValid())
{
QStringList values;
query.evaluateTo(&values);
qDebug() << values;
}