Portál AbcLinuxu, 15. července 2025 05:13
xmlParseDocument(ctxt_ptr);
a callback funkce, které při tom volá (startElement, endElement, ...
). Ale stále nemohu přijít na to jak vypnout nahrazování entit (lt, gt, quot, ...
). Neví někdo jak na to?
Řešení dotazu:
Špatně jsem popsal svůj problém.
Mám např. <tag>A < B</tag>
.
Při parsování mi callback funkce characters
vrátí " B
" místo "A < B
".
Vypadá to jako by si parser nejprve nahradil entity a teprve poté projel XML soubor a
na základě toho produkuje tyto useknuté části.
characters
může data dostávat po částech (tj. třeba "A < B" může dostat třeba jako "A <" a pak " B")?
Opravdu je to tak, vrací postupně "A
", "<
", " B
".
Díky moc za nakopnutí.
Měl jsem totiž v programu ještě jednu chybu, zapomněl jsem buffer naplnit nulami, před použitím funkce strncpy
, takže to vytvořilo slátaninu, která mě svedla z cesty a já vymyslel takovouhle blbost
[ TagNode [CharacterNode] [EntityReferenceNode [CharacterNode] ] [CharacterNode] ]? Takže ta funkce characters je volána 3x a to nejdříve pro "A ", "<" a " B".
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.