作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 RapidXml 的初学者。
<catalog>
<book id="bk101" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, a
nd her own childhood to become queen
of the world.</description>
</book>
</catalog>
对于这个 XML,我如何才能仅在 id="bk102"
时选择,然后解析 value="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
?
提前致谢!
最佳答案
解决方案非常简单:
#include <cstddef>
#include <cstring>
#include <iostream>
#include "rapidxml.hpp"
#include "rapidxml_utils.hpp"
…
rapidxml::file<> xml_file("/path/to/xml/file");
rapidxml::xml_document<> xml_doc;
xml_doc.parse<0>(xml_file.data());
const rapidxml::xml_node<> *catalog_node = xml_doc.first_node("catalog");
if (catalog_node == NULL) {
std::cout << "No \"catalog\" node!" << std::endl;
return;
}
for (const rapidxml::xml_node<> *book_node = catalog_node->first_node("book");
book_node != NULL;
book_node = book_node->next_sibling()) {
const rapidxml::xml_attribute<> *id_attribute = book_node->first_attribute("id");
if (id_attribute == NULL || strcmp(id_attribute->value(), "bk102") != 0) {
continue;
}
const rapidxml::xml_attribute<> *value_attribute = book_node->first_attribute("value");
if (value_attribute == NULL) {
continue;
}
std::cout << "Found \"value\" attribute with value: " << value_attribute->value() << std::endl;
}
关于c++ - RapidXml:选择一个 first_attribute 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35878686/
我是 RapidXml 的初学者。 Gambardella, Matthew XML Developer's Guide Computer 4
我是一名优秀的程序员,十分优秀!