Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка xml фаила 
:(
    Опции темы
knut
Дата 24.1.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



Добрый день.
НЕ как не могу загрузить xml фаил.что не так?вроде кострукция правльная.

xml
Цитата

<?xml version="1.0" standalone="no" ?>
<map>
<create_map >
<create_vector raw_i = "5" col _j = "5" />
</create_map>
<init_map>
<value index_ x="0" index_y = "1" value_element = "1" />
<value index_ x="1" index_y = "2" value_element = "3" />
<value index_ x="3" index_y = "0" value_element = "0" />
<value index_ x="2" index_y = "2" value_element = "2" />
</init_map>
</map>


Код

TiXmlDocument doc(fileName);
    bool IsOkay = doc.LoadFile();
    if (!IsOkay){
        std::cout<<"Can not Load the File"<<std::endl;
        return ;
    }


парсер tinyXml.


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
bel_nikita
Дата 24.1.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



<create_vector raw_i = "5" col _j = "5" />

Код

std::cout<<"Can not Load the File: "<<doc.ErrorDesc()<<std::endl;



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
knut
Дата 26.1.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



 загрузиl xml файл но не как не получается  заполнить вектор.
парсер tinyxml
Цитата

<?xml version="1.0" ?>
<init_map>
<create_vector raw_i="5" col_j="5" />
<value index_x="0" index_y="1" value_element="1" />
<value index_x="1" index_y="2" value_element="3" />
<value index_x="3" index_y="0" value_element="0" />
<value index_x="2" index_y="2" value_element="2" />
</init_map>


Код

void LoadA(const char*fileName){

    std::vector< std::vector<int> > m_vec(5,std::vector<int>(5));
    TiXmlElement *pElem;
    TiXmlAttribute *pAttr;
    int i,j;
    
    TiXmlDocument doc(fileName);
    bool IsOkay = doc.LoadFile();
    if (!IsOkay){
        std::cout<<"Can not Load the File"<<std::endl;
        return ;
    }

    //TiXmlHandle hDoc(&doc); 
    TiXmlNode*node = doc.RootElement();
    pElem = node->FirstChildElement();
    while (pElem){
        pAttr = pElem->FirstAttribute();
        while(pAttr){
            if( strcmp(pElem->Value(),"create_vector")) {
                    if(strcmp(pAttr->Name(),"raw_i")){
                int row = pAttr->IntValue();
                pAttr = pAttr->Next();
                    }
                    else{
                        int cal = pAttr->IntValue();
                        pAttr = pAttr->Next();
                    }
                }
                                
            if(strcmp(pElem->Value(),"value")){
                if(strcmp(pAttr->Name(),"index_x")){
                  i = pAttr->IntValue();
                    pAttr = pAttr->Next();
                }
                else{
                        if(strcmp(pAttr->Name(),"index_y")){
                             j = pAttr->IntValue();
                             pAttr = pAttr->Next();
                        }
                        else{
                        int value = pAttr->IntValue();
                        m_vec[i][j] = value;
            }
                }
                
                
            }
            
            pElem = pElem->NextSiblingElement();
                
            }
            
        
    }
}



--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
bsa
Дата 26.1.2007, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Ты мануал на TinyXML читал вообще? "create_vector" - это не значение элемента и не его аттрибут. Это его имя. ЭТО ИМЯ ЭЛЕМЕНТА!!! атрибуты - это raw_i и col_j.
value - это тоже имя элемента. а index_x, index_y и value_element - имена атрибутов.
PM   Вверх
knut
Дата 28.1.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



bsa,а я и в качестве имини и его использую


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
bel_nikita
Дата 28.1.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



knut
Что-то вроде:
Код

  TiXmlElement* elem_create_vector = 0;
  TiXmlHandle docH( &doc );
  elem_create_vector = docH.FirstChild( "init_map" ).FirstChild( "create_vector" ).ToElement();
  int raw_i = atoi( elem_create_vector->Attribute( "raw_i" ) );
  int col_j = atoi( elem_create_vector->Attribute( "col_j" ) );

  TiXmlElement* elem_value = 0;
    int i = 0; 
    while ( true )
    {
        elem_value = docH.FirstChild( "init_map" ).FirstChild( "create_vector" ).Child( "value", i ).ToElement();
        if ( !elem_value )
            break;
        // do something
            int  index_x = atoi( elem_value->Attribute( "index_x" ) );
            int  index_y = atoi( elem_value->Attribute( "index_y" ) );
            int  value_element = atoi( elem_value->Attribute( "value_element" ) );
        ++i;
            // заполняешь свой вектор

    }



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.