start looking at xml parse use in vips.c
This commit is contained in:
parent
420a918cbf
commit
dc2b567ee2
42
TODO
42
TODO
@ -1,5 +1,47 @@
|
|||||||
- added expat to required packages in configure.ac
|
- added expat to required packages in configure.ac
|
||||||
|
|
||||||
|
try moving iofuncs/vips.c to expat
|
||||||
|
|
||||||
|
sample XML for us to parse
|
||||||
|
|
||||||
|
$ vipsheader -f getext babe.v
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<root xmlns="http://www.vips.ecs.soton.ac.uk/vips/7.39.0">
|
||||||
|
<header>
|
||||||
|
<field type="VipsRefString" name="Hist"/>
|
||||||
|
</header>
|
||||||
|
<meta>
|
||||||
|
<field type="VipsRefString" name="vips-loader">jpegload</field>
|
||||||
|
<field type="gint" name="jpeg-multiscan">0</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd0-X-Resolution">4294966289/169093161 (25.399999998, Rational, 1 components, 8 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd0-Y-Resolution">4294966289/169093161 (25.399999998, Rational, 1 components, 8 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd0-Resolution Unit">2 (Inch, Short, 1 components, 2 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd2-Exif Version">Exif Version 2.1 (Exif Version 2.1, Undefined, 4 components, 4 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd2-FlashPixVersion">FlashPix Version 1.0 (FlashPix Version 1.0, Undefined, 4 components, 4 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="exif-ifd2-Colour Space">65535 (Internal error (unknown value 65535), Short, 1 components, 2 bytes)</field>
|
||||||
|
<field type="VipsRefString" name="resolution-unit">in</field><field type="VipsBlob" name="exif-data">
|
||||||
|
RXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQA
|
||||||
|
AAABAAAATgAAAAD///wRChQoKf///BEKFCgpAAOQAAAHAAAABDAyMTCgAAAHAAAABDAxMDCgAQAD
|
||||||
|
AAAAAf//AAAAAAAA
|
||||||
|
</field>
|
||||||
|
</meta>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
currently works like this
|
||||||
|
|
||||||
|
read_xml is called on image load
|
||||||
|
- loads extension bytes into memory
|
||||||
|
- calls libxml to parse it to an xmlDoc
|
||||||
|
- saves xmlDoc to VIPS_META_XML in header
|
||||||
|
|
||||||
|
rebuild_header called next
|
||||||
|
- gets xmlDoc from header
|
||||||
|
- gets "header" node
|
||||||
|
calls rebuild_header_builtin() for every field node
|
||||||
|
- gets "meta" field
|
||||||
|
calls rebuild_header_meta() for every field node
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- vips linecache has access there twice!
|
- vips linecache has access there twice!
|
||||||
|
@ -78,6 +78,7 @@
|
|||||||
#include <io.h>
|
#include <io.h>
|
||||||
#endif /*HAVE_IO_H*/
|
#endif /*HAVE_IO_H*/
|
||||||
#include <libxml/parser.h>
|
#include <libxml/parser.h>
|
||||||
|
#include <expat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#ifdef OS_WIN32
|
#ifdef OS_WIN32
|
||||||
|
Loading…
Reference in New Issue
Block a user