我有 XML 文件(我必须简化它):
<Line line1_attr1 = "value1" line1_attr2 = "value2">
<Term line1_term1_attr1 = "term1value1" line1_term1_attr2 = "term1value2">
term content
</Term>
<Term line1_term2_attr1 = "term2value1" line1_term2_attr2 = "term2value2">
term content
</Term>
</Line>
<Line line2_attr1 = "value1" line2_attr2 = "value2">
<Term line2_term1_attr1 = "term1value1" line2_term1_attr2 = "term1value2">
term content
</Term>
<Term line2_term2_attr1 = "term2value1" line2_term2_attr2 = "term2value2">
term content
</Term>
</Line>
属性存储在两个 QMap 中:mapString
(Line 的属性)和MapTerm
(Term 的属性)。我可以读取Line
标签的属性,但不能读取Term
标签。这也不是
if(token == QXmlStreamReader::StartElement)
{
if (xml.name() == "Line")
{
QXmlStreamAttributes attrib = xml.attributes();
for(auto e : mapString->keys())
{
mapString->insert(e, attrib.value(e).toString());
}
continue;
if (xml.name() == "Term")
{
QXmlStreamAttributes attrib = xml.attributes();
for(auto e : mapTerm->keys())
{
mapTerm->insert(e, attrib.value(e).toString());
}
continue;
}
}
也不
if(token == QXmlStreamReader::StartElement)
{
if (xml.name() == "Line")
{
QXmlStreamAttributes attrib = xml.attributes();
for(auto e : mapString->keys())
{
mapString->insert(e, attrib.value(e).toString());
}
continue;
}
if (xml.name() == "Term")
{
QXmlStreamAttributes attrib = xml.attributes();
for(auto e : mapTerm->keys())
{
mapTerm->insert(e, attrib.value(e).toString());
}
continue;
}
正在工作,if (xml.name() == "Term")中的代码未执行。