Portál AbcLinuxu, 8. listopadu 2025 13:37
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.