Я использую rapidXML и C++ в VS2012 на ПК. Я уже разбирал XML-файл, но теперь я хочу распечатать значения атрибутов отдельно. Обычно я могу это сделать, используя следующий код. Однако этот метод должен знать имя узла и имя атрибута. Это проблема, потому что у меня есть несколько узлов с тем же именем и несколькими атрибутами с тем же именем. Мой вопрос в том, как получить одно значение атрибута, когда ни имя узла, ни имя атрибута не уникальны?RapidXML Доступ к отдельному значению атрибута с использованием предыдущего значения атрибута?
код я использую, когда у меня есть уникальное имя узла и имя атрибута:
xml_node<> *node0 = doc.first_node("NodeName"); //define the individual node you want to access
xml_attribute<> *attr = node0->first_attribute("price"); //define the individual attribute that you want to access
cout << "Node NodeName has attribute " << attr->name() << " ";
cout << "with value " << attr->value() << "\n";
Мой файл теста XML:
<catalog>
<book>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book>
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
Для этого конкретного примера, как я могу получить значение атрибут цены на вторую книгу? Могу ли я ввести значение атрибута title «Midnight Rain» и каким-то образом использовать его для получения следующего значения?
'цена' не является атрибутом, это узел. XML-атрибуты выглядят как '' –
Roddy