Использование tinyxml парсера
От: Аноним  
Дата: 21.01.07 20:41
Оценка:
Здравствуйте.
Может и мой вопрос окажится глупым прошу прошение.
1.Как устонавить tinyXml? я скочал tinyxml_2_5_2 верс. но там кроме проекта и доков нечего тету.(скопировать все cpp i h фаилы в каталог студии что ли?)
2.в tinyXml парсере можно испильзовать stl?

22.01.07 12:04: Перенесено модератором из 'C/C++' — Кодт
Re: Использование tinyxml парсера
От: sharcUs Беларусь http://sharcus.blogspot.com/
Дата: 21.01.07 21:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>1.Как устонавить tinyXml? я скочал tinyxml_2_5_2 верс. но там кроме проекта и доков нечего тету.(скопировать все cpp i h фаилы в каталог студии что ли?)

А>2.в tinyXml парсере можно испильзовать stl?

Насколько я помню, там есть директория "doc\" в которой находится документация, предназначеная для получения ответов на эти и многие другие вопросы.

А еще наводящий вопрос, ДЛЯ ЧЕГО и КАКИМ ОБРАЗОМ предполалагось использование парсера?

P.S. Обратите внимание на раздел "Using and Installing".
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Использование tinyxml парсера
От: thest Россия  
Дата: 22.01.07 05:43
Оценка:
В документации конечно всё есть, сейчас её нет под рукой, не могу сказать где конкретно.
У меня всё так:
в проекте есть папка TinyXml со следующими файлами: tinystr.cpp tinystr.h tinyxml.cpp tinyxml.h tinyxmlerror.cpp tinyxmlparser.cpp
там где нужно пишу #include "tinyxml.h" и всё, пользуюсь.

библиотека может работать в двух режимах: с stl и без него. По умолчанию в tinyxml.h включена директива
#define TIXML_USE_STL
поэтому все методы stl-евские.
Re[3]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 08:36
Оценка:
Здравствуйте, thest, Вы писали:

T>В документации конечно всё есть, сейчас её нет под рукой, не могу сказать где конкретно.

T>У меня всё так:
T>в проекте есть папка TinyXml со следующими файлами: tinystr.cpp tinystr.h tinyxml.cpp tinyxml.h tinyxmlerror.cpp tinyxmlparser.cpp
T>там где нужно пишу #include "tinyxml.h" и всё, пользуюсь.

я копирую эти фаилы в каталог.но линкер не как не может открыть tinyxml.h фаил
Re[4]: Использование tinyxml парсера
От: thest Россия  
Дата: 22.01.07 08:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, thest, Вы писали:


T>>В документации конечно всё есть, сейчас её нет под рукой, не могу сказать где конкретно.

T>>У меня всё так:
T>>в проекте есть папка TinyXml со следующими файлами: tinystr.cpp tinystr.h tinyxml.cpp tinyxml.h tinyxmlerror.cpp tinyxmlparser.cpp
T>>там где нужно пишу #include "tinyxml.h" и всё, пользуюсь.

А>я копирую эти фаилы в каталог.но линкер не как не может открыть tinyxml.h фаил


А линкер его и не должен открывать. Компилятор наверное его просто не находит — значит в #include путь неправильный указан. Ну например если эти файлы находятся в папке TinyXml, то нужно и писать соответственно
#include "TinyXml\tinyxml.h"
Так работает?
Re[5]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 09:25
Оценка:
T>#include "TinyXml\tinyxml.h"
T>Так работает?
нет так тоже error:fatal error C1083: Cannot open include file
Re[6]: Использование tinyxml парсера
От: thest Россия  
Дата: 22.01.07 09:50
Оценка:
Здравствуйте, Аноним, Вы писали:

T>>#include "TinyXml\tinyxml.h"

T>>Так работает?
А>нет так тоже error:fatal error C1083: Cannot open include file

Ну дык путь неправильный Или нет там такого файла.
Re[7]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 10:11
Оценка:
Здравствуйте, thest, Вы писали:
все подправил я путь.Но у меня еще вопрос.почему так не работает?
void dump_to_stdout(const char* pFilename)
{
    TiXmlDocument doc(pFilename);
    bool loadOkay = doc.LoadFile();
    if (loadOkay)
    {
        printf("\n%s:\n", pFilename);
        dump_to_stdout(& doc ); //здесь ошибка     }
    else
    {
        printf("Failed to load file \"%s\"\n", pFilename);
    }
}


error C2664: 'dump_to_stdout' : cannot onvert parameter 1 from 'TiXmlDocument *__w64 ' to 'const char *'
Re[8]: Использование tinyxml парсера
От: thest Россия  
Дата: 22.01.07 10:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, thest, Вы писали:

А>все подправил я путь.Но у меня еще вопрос.почему так не работает?
А>
А>void dump_to_stdout(const char* pFilename)
А>{
А>    TiXmlDocument doc(pFilename);
А>    bool loadOkay = doc.LoadFile();
А>    if (loadOkay)
А>    {
А>        printf("\n%s:\n", pFilename);
А>        dump_to_stdout(& doc ); //здесь ошибка     }
А>    else
А>    {
А>        printf("Failed to load file \"%s\"\n", pFilename);
А>    }
А>}
А>


А>error C2664: 'dump_to_stdout' : cannot onvert parameter 1 from 'TiXmlDocument *__w64 ' to 'const char *'


dump_to_stdout принимает параметром имя файла, а ты ей передаёшь уже загруженный xml-документ. Вот и не работает.
Что же ты пытешься сделать?
Re[8]: Использование tinyxml парсера
От: _Dreamer Россия  
Дата: 22.01.07 10:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, thest, Вы писали:

А>все подправил я путь.Но у меня еще вопрос.почему так не работает?
А>
А>void dump_to_stdout(const char* pFilename)
А>{
А>    TiXmlDocument doc(pFilename);
А>    bool loadOkay = doc.LoadFile();
А>    if (loadOkay)
А>    {
А>        printf("\n%s:\n", pFilename);
А>        dump_to_stdout(& doc ); //здесь ошибка     }
А>    else
А>    {
А>        printf("Failed to load file \"%s\"\n", pFilename);
А>    }
А>}
А>


А>error C2664: 'dump_to_stdout' : cannot onvert parameter 1 from 'TiXmlDocument *__w64 ' to 'const char *'


ну компилятор же все сказал, разве нет ?
он (компилятор) не видит никакой другой функции с именем 'dump_to_stdout', кроме 'void dump_to_stdout(const char* pFilename)', которая принимает С-style строку, а вовсе не TiXmlDocument *.
если такая функция тем не менее есть, включи заголовочный файл, где она обьявлена.
если она просто не видна, обьяви ее выше функции 'void dump_to_stdout(const char* pFilename)'.
если же ее вообще нет в природе, то чего ты хочешь ?
Re: Использование tinyxml парсера
От: Lazarenko Украина http://www.b2bits.com
Дата: 22.01.07 10:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте.

А>Может и мой вопрос окажится глупым прошу прошение.
А>1.Как устонавить tinyXml? я скочал tinyxml_2_5_2 верс. но там кроме проекта и доков нечего тету.(скопировать все cpp i h фаилы в каталог студии что ли?)
А>2.в tinyXml парсере можно испильзовать stl?

Очень давно, когда нам срочно понадобилось работать с XML, выбрали TinyXML.
Проект сам по себе не очень хороший, качество кода оставляет желать лучшего, НО! Но код простой,
можно быстро в нем разобраться, работает как под Linux, так и под Windows (больше нигде не пригодился).
Однако, со временем, когда появлялись все более сложные задачи и мудреные XML, пришлось переходить на Xerces.
Если используется студия, то файлы проекта лучше сделать самому, то же и для make или ant, как систем сборки.
В случае чего, можно не отходя от кассы исправить ошибку, если нужны не большие — отличное средство.

Как установить? Просто создай проект, импортируй файлы и скомпилируй. Или напиши свой скрипт сборки.
STL использовать можно и даже целесообразней это делать.
With regards,
Vladislav Lazarenko
Re[9]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 12:36
Оценка:
это пример из дока tinyXml a.
т.е. создается док .если он создался то загружаем его открываем и читаем функцией
dump_to_stdout( &doc );
т.е
TiXmlDocument doc(pFilename);
bool loadOkay = doc.LoadFile();
dump_to_stdout( &doc );doc вить боект с имемем фаила и почему я не могу передать функции сыллку на него?
Re[10]: Использование tinyxml парсера
От: thest Россия  
Дата: 22.01.07 12:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>это пример из дока tinyXml a.

А>т.е. создается док .если он создался то загружаем его открываем и читаем функцией
А>dump_to_stdout( &doc );
А>т.е
А>TiXmlDocument doc(pFilename);
А>bool loadOkay = doc.LoadFile();
А>dump_to_stdout( &doc );doc вить боект с имемем фаила и почему я не могу передать функции сыллку на него?


покажи где этот пример
Re[11]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 12:54
Оценка:
T>покажи где этот пример
example1.xml:

<?xml version="1.0" ?>
<Hello>World</Hello>

вот сама функц,
// load the named file and dump its structure to STDOUT
void dump_to_stdout(const char* pFilename)
{
    TiXmlDocument doc(pFilename);
    bool loadOkay = doc.LoadFile();
    if (loadOkay)
    {
        printf("\n%s:\n", pFilename);
        dump_to_stdout( &doc ); // defined later in the tutorial
    }
    else
    {
        printf("Failed to load file \"%s\"\n", pFilename);
    }
}


и маин

int main(void)
{
    dump_to_stdout("example1.xml");
    return 0;
}
Re[12]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 13:53
Оценка:
Здравствуйте, Аноним, Вы писали:
и еще один вопрос.какие либиы надо подключать при работе с tinyXml? ато у меня лимкер все время ругается когда обявленны следующие классы
TiXmlDocument
TiXmlDeclaration
Re[13]: Использование tinyxml парсера
От: Аноним  
Дата: 22.01.07 15:13
Оценка:
Здравствуйте, Аноним, Вы писали:
народ подсажи что за варнинги и такиь 18 штук?
error LNK2001: unresolved external symbol "protected: virtual class TiXmlNode * __thiscall TiXmlText::Clone(void)const " (?Clone@TiXmlText@@MBEPAVTiXmlNode@@XZ)
Re[12]: Использование tinyxml парсера
От: thest Россия  
Дата: 23.01.07 10:49
Оценка:
Здравствуйте, Аноним, Вы писали:

T>>покажи где этот пример

А>example1.xml:

А>
А><?xml version="1.0" ?>
А><Hello>World</Hello>
А>

А>вот сама функц,
А>
А>// load the named file and dump its structure to STDOUT
А>void dump_to_stdout(const char* pFilename)
А>{
А>    TiXmlDocument doc(pFilename);
А>    bool loadOkay = doc.LoadFile();
А>    if (loadOkay)
А>    {
А>        printf("\n%s:\n", pFilename);
А>        dump_to_stdout( &doc ); // defined later in the tutorial
А>    }
А>    else
А>    {
А>        printf("Failed to load file \"%s\"\n", pFilename);
А>    }
А>}
А>


А>и маин


А>
А>int main(void)
А>{
А>    dump_to_stdout("example1.xml");
А>    return 0;
А>}


А>



Пример отсюда, да http://www.grinninglizard.com/tinyxmldocs/tutorial0.html
Обрати внимание на строчки // defined later in the tutorial
Ты пытаешься пользоваться функцией
void dump_to_stdout( TiXmlNode* pParent, unsigned int indent = 0 )
а скопировать её забыл
Если хочешь скомпилировать этот пример, то возьми есго исходники ПОЛНОСТЬЮ, это там где написано Full listing for dump_to_stdout
Re[13]: Использование tinyxml парсера
От: thest Россия  
Дата: 23.01.07 10:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:

А>и еще один вопрос.какие либиы надо подключать при работе с tinyXml? ато у меня лимкер все время ругается когда обявленны следующие классы
А>TiXmlDocument
А>TiXmlDeclaration


В чём компилируешь? У меня VS2005 — ничего такого нет.
Re[14]: Использование tinyxml парсера
От: Аноним  
Дата: 23.01.07 14:52
Оценка:
Здравствуйте, thest, Вы писали:

T>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Аноним, Вы писали:

А>>и еще один вопрос.какие либиы надо подключать при работе с tinyXml? ато у меня лимкер все время ругается когда обявленны следующие классы
А>>TiXmlDocument
А>>TiXmlDeclaration


T>В чём компилируешь? У меня VS2005 — ничего такого нет.

да у меня тоже 2005 стоит.но у неня ругается ошибки такого ранга.какие фаили надо скапировать в свой катталог проект а? и какие фаилы подключить?

error LNK2019: unresolved external symbol "public: bool __thiscall TiXmlDocument::LoadFile
Re[2]: Использование tinyxml парсера
От: Аноним  
Дата: 23.01.07 15:30
Оценка:
Здравствуйте, Lazarenko, Вы писали:

L>Как установить? Просто создай проект, импортируй файлы и скомпилируй. Или напиши свой скрипт сборки.

я так и зделал создал проект скопировал туда из каталога парсера все .h фаилы.включил в проект "tinyxml.h" и от компилил.
но вот беда ошибки пипа.
rror LNK2001: unresolved external symbol "public:
Re[3]: Использование tinyxml парсера
От: thest Россия  
Дата: 24.01.07 05:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Lazarenko, Вы писали:


L>>Как установить? Просто создай проект, импортируй файлы и скомпилируй. Или напиши свой скрипт сборки.

А>я так и зделал создал проект скопировал туда из каталога парсера все .h фаилы.включил в проект "tinyxml.h" и от компилил.
А>но вот беда ошибки пипа.
А>
А>rror LNK2001: unresolved external symbol "public:
А>



Понятно.
1. Нужно копировать не только h, но и cpp файлы. Вот список файлов, которые скопированы у меня:
tinystr.cpp
tinystr.h
tinyxml.cpp
tinyxml.h
tinyxmlerror.cpp
tinyxmlparser.cpp

2. Все эти файлы нужно включить в проект чтобы VS их компилировала, а не только tinyxml.h

3. Больше подключать ничего не нужно.
Re: Использование tinyxml парсера
От: silart  
Дата: 10.02.09 03:34
Оценка:
Добрый день всем!

Товарищи, кто-нибудь использовал TinyXML++? Заостряю внимание: не TinyXML, а TinyXML++!
Про TinyXML++ написано:

The TinyXML++ classes are all wrappers around the corresponding classes within TinyXML.


То есть она является оболочкой на TinyXML.
Где вот ее только взять? Везде указывается путь: http://code.google.com/p/ticpp/
Но там можно скачать только документацию, а саму библиотеку я там не нашел...
Подскажите пожалуйста, где ее можно взять?

Да, и кто пользовался TinyXML? Стоит ли ее вообще использовать в своем проекте?
Тут многие советуют xerces, но это более навороченная библиотека, а мне требуется простая функциональность.
Посоветуйте пожалуйста.
Re[2]: Использование tinyxml парсера
От: neFormal Россия  
Дата: 10.02.09 06:43
Оценка:
Здравствуйте, silart, Вы писали:

S>Да, и кто пользовался TinyXML? Стоит ли ее вообще использовать в своем проекте?

S>Тут многие советуют xerces, но это более навороченная библиотека, а мне требуется простая функциональность.
S>Посоветуйте пожалуйста.

если не нужен xpath, а нужно только парсить целиком файлы (например, настройки), то tinyxml можно легко использовать..
...coding for chaos...
Re[2]: Использование tinyxml парсера
От: 8bit  
Дата: 10.02.09 08:35
Оценка:
Здравствуйте, silart, Вы писали:

S>Где вот ее только взять? Везде указывается путь: http://code.google.com/p/ticpp/

S>Но там можно скачать только документацию, а саму библиотеку я там не нашел...
S>Подскажите пожалуйста, где ее можно взять?

Она лежит под svn. Там есть вкладочка Source где все написано.
svn checkout http://ticpp.googlecode.com/svn/trunk/ ticpp-read-only
http://code.google.com/p/ticpp/source/browse/#svn/trunk

з.ы.
Чем именно вам приглянулся TinyXML++?
Re[3]: Использование tinyxml парсера
От: silart  
Дата: 10.02.09 08:59
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Здравствуйте, silart, Вы писали:


S>>Где вот ее только взять? Везде указывается путь: http://code.google.com/p/ticpp/

S>>Но там можно скачать только документацию, а саму библиотеку я там не нашел...
S>>Подскажите пожалуйста, где ее можно взять?

8>Она лежит под svn. Там есть вкладочка Source где все написано.

8>svn checkout http://ticpp.googlecode.com/svn/trunk/ ticpp-read-only
8>http://code.google.com/p/ticpp/source/browse/#svn/trunk

8>з.ы.

8>Чем именно вам приглянулся TinyXML++?

То есть нужно все файлики по отдельности скачивать? А почему их интересно в один архив не скомпоновали?

Ну я посмотрел документацию на TinyXML++, мне С++ синтаксис больше понравился, чем простой TinyXML. Там классы даже в namespace не объединены. Странно это как-то.
Я TinyXML стал использовать потому что очень простая и я в нее быстро въехал. Мне не нужны пока никакие XPath и прочие крутые вещи. Нужно просто настройки передавать в формате xml, да события генерировать, чтоб строкой можно много различных параметров передать за раз и без изменения интерфейса событий.
Re[4]: Использование tinyxml парсера
От: 8bit  
Дата: 10.02.09 12:49
Оценка:
Здравствуйте, silart, Вы писали:

S>То есть нужно все файлики по отдельности скачивать? А почему их интересно в один архив не скомпоновали?

Надо забирать через svn. Поставьте какой-нить TortoiseSVN и сделайте export репозитория.
Видимо архива нет потому что и релиза нет, а может просто им так захотелось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.