tinyxml как получить имя тега?
От: szag  
Дата: 09.07.10 07:18
Оценка:
Здравствуйте, Коллеги!

Есть задача распарсить xml. Структура изначально четко не определена — иерархическая. Поэтому требуется получать имена текущих тегов, тегов чаилдов и т.д. Перерыр весь хелп, но так ничего такого и не нашел. Должно же быть как-то просто.
Re: tinyxml как получить имя тега?
От: Sni4ok  
Дата: 09.07.10 08:10
Оценка:
Здравствуйте, szag, Вы писали:

S>Есть задача распарсить xml. Структура изначально четко не определена — иерархическая. Поэтому требуется получать имена текущих тегов, тегов чаилдов и


так по хедеру смотрите, там же всё помоему довольно просто

у TiXmlNode методы FirstChildElement(), NextSibling(), NextSiblingElement() , у TiXmlElement метод FirstAttribute(), у TiXmlAttribute метод Next().
Re: tinyxml как получить имя тега?
От: Ytz https://github.com/mtrempoltsev
Дата: 09.07.10 09:13
Оценка: 3 (1)
Здравствуйте, szag, Вы писали:

S>Здравствуйте, Коллеги!


S>Есть задача распарсить xml. Структура изначально четко не определена — иерархическая. Поэтому требуется получать имена текущих тегов, тегов чаилдов и т.д. Перерыр весь хелп, но так ничего такого и не нашел. Должно же быть как-то просто.


ticpp::Document document("fruits.xml");
try
{
    document.LoadFile();
    ticpp::Iterator<ticpp::Element> child;
    for(child = child.begin(document.FirstChildElement()); child != child.end(); child++)
    {
        std::string fruitName;
        child->GetValue(&fruitName);
        std::cout << "fruit: " << fruitName << std::endl;
        ticpp::Iterator<ticpp::Attribute> attribute;
        for(attribute = attribute.begin(child.Get()); attribute != attribute.end(); attribute++)
        {
            std::string name;
            attribute->GetName(&name);
            std::string value;
            attribute->GetValue(&value);
            std::cout << name << ": " << value << std::endl;
        }
        std::cout << std::endl;
    }
}
catch (ticpp::Exception& ex)
{
    std::cout << ex.what() << std::endl;
}



<?xml version="1.0" encoding="UTF-8" ?>
<Fruits>
        <Яблоко colour="зеленое" price="1.1" amount="10" />
        <Banana colour="yellow" price="1.5" amount="10" />
        <Cherry colour="red" price="2.5" amount="1" />
</Fruits>


Доступно?
Re[2]: tinyxml как получить имя тега?
От: szag  
Дата: 09.07.10 10:22
Оценка:
Здравствуйте, Ytz, Вы писали:

Ytz>Доступно?


да, спасибо! Я просто использовал tinyxml, а не ticpp. С этой оберткой все действительно намного проще.
Re[3]: tinyxml как получить имя тега?
От: neFormal Россия  
Дата: 09.07.10 14:32
Оценка: +1
Здравствуйте, szag, Вы писали:

Ytz>>Доступно?

S>да, спасибо! Я просто использовал tinyxml, а не ticpp. С этой оберткой все действительно намного проще.

в TinyXml имя можно получить из TiXmlNode::Value..
...coding for chaos...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.