Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

wxWidgets - odczytanie XML


Rekomendowane odpowiedzi

Opublikowano

Witam. Mam otóż taki problem..

 

Mam taki plik XML:

 

<?xml version="1.0" encoding="utf-8" ?>
<TEXTURE>
<FILE>
 <FILEID>22,11,33,01</FILEID>
</FILE>
</TEXTURE>

 

Jak przy pomocy C++ i wxWidget odczytać wartość w "FILEID"?

 

Mój kod (błędny):


XMLReader::XMLReader( wxInputStream& stream )
{
m_doc = new wxXmlDocument( stream );

if( !m_doc->IsOk() )
return;

m_node = m_doc->GetDocumentNode()->GetChildren();
}


wxString XMLReader::ReadFromTagName( wxString& name )
{
wxString content = wxEmptyString;

if(m_doc->IsOk())
{
while (this->m_node)
{
if(this->m_node->GetName() == wxT("FILE"))
{
this->m_node = this->m_node->GetChildren();
}
else if(this->m_node->GetName() == wxT("FILEID"))
{
content = this->m_node->GetNodeContent();
}

this->m_node = this->m_node->GetNext();

}

return content;
}

 

Proszę o jakieś wskazówki... Albo jakiś kod przykładowy który pokazuje jak odczytać taki plik.

 

Pozdrawiam ;)

 

PS. Specjalnie założyłem tu konto ;P

Opublikowano

Heh, trzeba już było wybrać na to konto oficjalne forum wxWidgets:

http://forums.wxwidgets.org/

 

 

Tutaj tę bibliotekę ogarniają może ze trzy osoby.

 

 

Osobiście nie bawiłem się z XML w wxWidgets z bardzo prostego powodu:

- brak obsługi dla wyrażeń xpath ;( <rage>

 

 

Natomiast wydaje mi się, że problem *może* leżeć tutaj:

 

m_node = m_doc->GetDocumentNode()->GetChildren();

 

Spróbuj

 

m_node = m_doc->GetRoot()->GetChildren();

 

GetDocumentNode() służy do pobrania prologu:

http://docs.wxwidgets.org/trunk/classwx_xml_document.html

 

http://en.wikipedia....ki/Root_element

 

Strzelam na pół ciemno, nie siedzę w temacie.

 

Oczywiście to wszystko zakładając, że wxInputStream jest poprawny i zawiera dane, które masz nadzieję, że zawiera.

 

 

PS

Wyłączaj nowe formatowanie (lewy górny róg edytora) przy wklejaniu kodu, gdyż TAB'y się psują ( administracja już o tym wie i pracuje nad problemem nieprzerwanie od pięciu miesięcy ).

Ta sygnatura jest pusta.

Opublikowano

Tak, wxInputStream zawiera dane... Otóż, błąd nadal występuje: "XML parsing error: 'no element found' at line 37". Ale najlepsze w tym, że byle jak zedytuje w C++, błąd taki sam -.- ... :/

 

Poszukam na forum którym mi podałeś... ;)

 

Ale i tak, Dziękuję. Bynajmniej sie starałeś ;)

Opublikowano

Witam ponownie. Po samodzielnych poszukiwaniach stwierdziłem że błąd leży po stronie wxXmlDocument. W żaden sposób nie idzie załadować do niej wxInputStream.

Zrobiłem warunek, podczas wykonania funckji Load(), zwrócił FALSE, dlaczego? Sam nie wiem..

Używam wxWidgets 2.9.3.

 

Może te informacje coś pomogą... :/

 

Pozdrawiam ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...