Есть ли способ получить значение XML по тегу в быстрой XML с использованием C++

Есть ли способ получить значение тега по его тэгу в rapidxml, используя C++

<?xml version=\1.0\ encoding=\latin-1\?>
<book>example</book>
<book1>example1</book1>

мне нужно получить балансовую стоимость, т.е. пример и стоимость book1.... мы можем использовать это doc.first_node()->value()получить первый узел и следующий узел, но мне нужно, есть ли способ получить значение, как get by name

Ответ

xml_node<> *node = doc.first_node("book");
      cout <<< node->value() << "\n";

1 ответ

Решение

Вы должны быть в состоянии вызвать first_node, используя имя узла для сопоставления. Из документов:

функция xml_node::first_node

конспект

xml_node* first_node(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const; Описание

Получает первый дочерний узел, необязательно совпадая с именем узла.

параметры

название

Имя ребенка, чтобы найти, или 0, чтобы вернуть первого ребенка, независимо от его имени; эта строка не должна заканчиваться нулем, если name_size не равен нулю

name_size

Размер имени, в символах или 0, чтобы размер вычислялся автоматически из строки

с учетом регистра

Должно ли сравнение имен быть чувствительным к регистру; не чувствительное к регистру сравнение работает корректно только для символов ASCII

Возвращает

Указатель на найденного ребенка или 0, если не найден.

RapidXML не поддерживает XPath для более сложных запросов.

Другие вопросы по тегам