Białe znaki w XML-u

Nie wiem, jak jest zdefiniowana ta sprawa w standardzie, ale taki libxml2 białe znaki między elementami XML-a uznaje jako element.

Mając XML-a:

<root>
	<node>node value</node>
</root>

Pierwszym dzieckiem roota jest element zawierający tabulator i znak końca wiersza, a następnym dopiero element node.

Większość parserów, także tych "wbudowanych" w skryptowe języki - PHP, Perl, standardowo ignoruje takie elementy.

Miałem nadzieje, że jest jakaś opcja w libxml pozwalającą zignorować puste elementy, ale niestety nic nie znalazłem.

Będę musiał się pomęczyć z xmlIsBlankNode().

Tak przy okazji, libxmla ma bardzo wielkie możliwości, póki co wykorzystuje tylko podstawowe elementy w tworzonym serwerze proxy XMPP<>Tlen. Na korzyść libxmla przemawia także bardzo łatwa współpraca z libxslt ;)

2 przemyślenia nt. „Białe znaki w XML-u”

  1. Znalazlem w enum xmlParserOption pozycje: XML_PARSE_NOBLANKS = 256 : remove blank nodes.

    Teraz tylko podmienic funkcje do „ladowania” XML-a z pliku i stringu na takie, ktore przyjmuja flagi ;)
    Tylko przez to strace defaultowe ustawione flagi, chyba, ze znajde cos co pozwoli ustawic dowolna flage.

    Jeszcze jeden maly mankament na jaki trafilem – libxml do kazdego „zrzutu” XML-a, czy do pliku, czy stringu dolacza prolog XML. Tworcy tlumacza sie tym, ze wymaga tego standard XML 1.1. Nie znalazlem nic ciekawego w libie, aby to „wylaczyc”, chyba recznie bede musial to usuwac, przy dumpach.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *