Parser XML w C - poprawność dokumentu i parsowanie

0

Cześć
Pisze parser XML w C, ale mam problem ze zrozumieniem jak powinien wyglądać poprawny dokument.
Na stronie https://www.w3schools.com/xml/default.asp jest całkiem przyjemny tutorial i rozumiem większość kursu, ale nie wiem jak powinien zachować się mój parser na widok takiego dokumentu konkretnie linii 3 i 5:

<?xml version="1.0" encoding="UTF-8"?>
<note>
    Jakiś tekst
    <to>Tove</to>
    Jakiś tekst
    <from>Jani</from> 
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

Po parsowaniu dane przechowuję w takich strukturach

typedef struct
{
    char *   key;
    char *   value;
} XML_ATTR;

typedef struct
{
    LIST    attr;     // lista atrybutów
    char *  key;      // klucz
    void *  value;    // wartość (tekst lub lista węzłów)
    char    valType;  // typ wartości 0 - tekst 1 - lista węzłów
} XML_NODE;

Czy wyrażenie "Jakiś tekst" powinienem traktować jako komentarz i po prostu je ominąć?
Czy powinienem do struktury XML_NODE dodać kolejne pole typu char * i zapisać w nim połączony tekst?
A może powinienem przerwać walidację?
Sprawdzałem ten XML w dwóch validatorach i oba mówią że dokument jest poprawny więc nie wiem co zrobić z takim tworem
Validatory:
https://validator.w3.org/#validate_by_input
http://www.xmlvalidation.com/

0

Dlaczego chcesz Jakiś tekst traktować jako komentarz?
Jest to wartość klucza note, który posiada kolejne zagnieżdżone klucze to, from, heading i body.

0
tajny_agent napisał(a):

Dlaczego chcesz Jakiś tekst traktować jako komentarz?

Niekoniecznie jako komentarz. Nie wiedziałem jak to traktować stąd jednym z pomysłów było traktowanie Jakiś tekst jako komentarz.

tajny_agent napisał(a):

Jest to wartość klucza note, który posiada kolejne zagnieżdżone klucze to, from, heading i body.

Tak dzięki właśnie udało mi się znaleźć podobny problem na stackoverflow
http://stackoverflow.com/questions/12130228/can-a-xml-element-contain-text-and-child-elements-at-the-same-time

1 użytkowników online, w tym zalogowanych: 0, gości: 1