XPath: элемент с атрибутом делает запрос недействительным
Я достаю <script>
элемент XML
подать через XPath
запрос и все в порядке, пока не будет атрибута в элементах до <script>
один.
В двух словах это работает:
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<script type="text/javascript" id="report-data">
var templateMetaData =
...
Это не (html
имеет атрибут xmlns
):
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" id="report-data">
var templateMetaData =
...
Это мой запрос:
//script[attribute::id = "report-data"]
и я попробовал также это:
/html/head/script[attribute::id = "report-data"]
Я не могу найти документ, который мог бы помочь мне найти решение.
Я использую QXmlQuery для выполнения запроса и код следующий (просто тестовое приложение):
....
QXmlQuery query(QXmlQuery::XPath20);
query.setFocus(&file); // the XML file
query.setQuery(queryStr); // the query
QString values;
if( query.isValid())
{
QXmlResultItems result;
query.evaluateTo( &result );
QXmlItem XmlItem( result.next());
while( !XmlItem.isNull())
{
if( XmlItem.isAtomicValue())
{
values.append( XmlItem.toAtomicValue().toString());
values.append("\n");
}
else if( XmlItem.isNode())
{
QXmlNodeModelIndex Index = XmlItem.toNodeModelIndex();
values.append( Index.stringValue());
values.append("\n");
}
XmlItem = result.next();
}
}
else
{
QMessageBox::information( parent, "error", QString("invalid query!"));
}
....
Любая помощь приветствуется.