cairo 1.14.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of cairo might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/AUTHORS +7 -0
- data/COPYING +59 -0
- data/GPL +340 -0
- data/Gemfile +5 -0
- data/NEWS +429 -0
- data/README.rdoc +120 -0
- data/Rakefile +620 -0
- data/ext/cairo/cairo.def +140 -0
- data/ext/cairo/depend +3 -0
- data/ext/cairo/extconf.rb +202 -0
- data/ext/cairo/rb_cairo.c +111 -0
- data/ext/cairo/rb_cairo.h +348 -0
- data/ext/cairo/rb_cairo_constants.c +673 -0
- data/ext/cairo/rb_cairo_context.c +1741 -0
- data/ext/cairo/rb_cairo_device.c +475 -0
- data/ext/cairo/rb_cairo_exception.c +446 -0
- data/ext/cairo/rb_cairo_font_extents.c +200 -0
- data/ext/cairo/rb_cairo_font_face.c +726 -0
- data/ext/cairo/rb_cairo_font_options.c +197 -0
- data/ext/cairo/rb_cairo_glyph.c +161 -0
- data/ext/cairo/rb_cairo_io.c +166 -0
- data/ext/cairo/rb_cairo_io.h +44 -0
- data/ext/cairo/rb_cairo_matrix.c +366 -0
- data/ext/cairo/rb_cairo_path.c +459 -0
- data/ext/cairo/rb_cairo_pattern.c +1192 -0
- data/ext/cairo/rb_cairo_private.c +255 -0
- data/ext/cairo/rb_cairo_private.h +129 -0
- data/ext/cairo/rb_cairo_rectangle.c +83 -0
- data/ext/cairo/rb_cairo_region.c +385 -0
- data/ext/cairo/rb_cairo_scaled_font.c +235 -0
- data/ext/cairo/rb_cairo_surface.c +2284 -0
- data/ext/cairo/rb_cairo_text_cluster.c +151 -0
- data/ext/cairo/rb_cairo_text_extents.c +221 -0
- data/lib/2.0/cairo.so +0 -0
- data/lib/2.1/cairo.so +0 -0
- data/lib/2.2/cairo.so +0 -0
- data/lib/cairo.rb +154 -0
- data/lib/cairo/color.rb +267 -0
- data/lib/cairo/colors.rb +656 -0
- data/lib/cairo/constants.rb +24 -0
- data/lib/cairo/context.rb +29 -0
- data/lib/cairo/context/blur.rb +45 -0
- data/lib/cairo/context/circle.rb +9 -0
- data/lib/cairo/context/color.rb +11 -0
- data/lib/cairo/context/path.rb +117 -0
- data/lib/cairo/context/rectangle.rb +33 -0
- data/lib/cairo/context/triangle.rb +12 -0
- data/lib/cairo/device.rb +13 -0
- data/lib/cairo/paper.rb +183 -0
- data/lib/cairo/papers.rb +65 -0
- data/lib/cairo/path.rb +15 -0
- data/lib/cairo/pattern.rb +12 -0
- data/lib/cairo/point.rb +7 -0
- data/lib/cairo/surface.rb +13 -0
- data/samples/agg/aa_test.rb +304 -0
- data/samples/blur.rb +46 -0
- data/samples/pac-nomralize.rb +170 -0
- data/samples/pac-tee.rb +170 -0
- data/samples/pac.rb +98 -0
- data/samples/png.rb +44 -0
- data/samples/scalable.rb +55 -0
- data/samples/text-on-path.rb +59 -0
- data/samples/text2.rb +130 -0
- data/test/cairo-test-utils.rb +44 -0
- data/test/run-test.rb +29 -0
- data/test/test_color.rb +17 -0
- data/test/test_constants.rb +27 -0
- data/test/test_context.rb +105 -0
- data/test/test_exception.rb +36 -0
- data/test/test_font_extents.rb +36 -0
- data/test/test_font_face.rb +257 -0
- data/test/test_font_options.rb +13 -0
- data/test/test_image_surface.rb +28 -0
- data/test/test_paper.rb +81 -0
- data/test/test_quartz_image_surface.rb +13 -0
- data/test/test_raster_source_pattern.rb +162 -0
- data/test/test_recording_surface.rb +19 -0
- data/test/test_region.rb +102 -0
- data/test/test_scaled_font.rb +34 -0
- data/test/test_script_device.rb +46 -0
- data/test/test_script_surface.rb +13 -0
- data/test/test_surface.rb +61 -0
- data/test/test_tee_surface.rb +32 -0
- data/test/test_text_cluster.rb +32 -0
- data/test/test_text_extents.rb +40 -0
- data/test/test_text_to_glyphs_data.rb +51 -0
- data/test/test_xml_device.rb +22 -0
- data/test/test_xml_surface.rb +34 -0
- data/vendor/local/bin/fc-cache.exe +0 -0
- data/vendor/local/bin/fc-cat.exe +0 -0
- data/vendor/local/bin/fc-list.exe +0 -0
- data/vendor/local/bin/fc-match.exe +0 -0
- data/vendor/local/bin/fc-pattern.exe +0 -0
- data/vendor/local/bin/fc-query.exe +0 -0
- data/vendor/local/bin/fc-scan.exe +0 -0
- data/vendor/local/bin/fc-validate.exe +0 -0
- data/vendor/local/bin/freetype-config +163 -0
- data/vendor/local/bin/libcairo-2.dll +0 -0
- data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
- data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
- data/vendor/local/bin/libfontconfig-1.dll +0 -0
- data/vendor/local/bin/libfreetype-6.dll +0 -0
- data/vendor/local/bin/libgcc_s_seh-1.dll +0 -0
- data/vendor/local/bin/libpixman-1-0.dll +0 -0
- data/vendor/local/bin/libpng-config +127 -0
- data/vendor/local/bin/libpng16-16.dll +0 -0
- data/vendor/local/bin/libpng16-config +127 -0
- data/vendor/local/bin/libstdc++-6.dll +0 -0
- data/vendor/local/bin/libwinpthread-1.dll +0 -0
- data/vendor/local/bin/libxml2-2.dll +0 -0
- data/vendor/local/bin/png-fix-itxt.exe +0 -0
- data/vendor/local/bin/pngfix.exe +0 -0
- data/vendor/local/bin/xml2-config +106 -0
- data/vendor/local/bin/xmlcatalog.exe +0 -0
- data/vendor/local/bin/xmllint.exe +0 -0
- data/vendor/local/bin/zlib1.dll +0 -0
- data/vendor/local/etc/fonts/conf.d/10-scale-bitmap-fonts.conf +81 -0
- data/vendor/local/etc/fonts/conf.d/20-unhint-small-vera.conf +48 -0
- data/vendor/local/etc/fonts/conf.d/30-metric-aliases.conf +546 -0
- data/vendor/local/etc/fonts/conf.d/30-urw-aliases.conf +24 -0
- data/vendor/local/etc/fonts/conf.d/40-nonlatin.conf +231 -0
- data/vendor/local/etc/fonts/conf.d/45-latin.conf +189 -0
- data/vendor/local/etc/fonts/conf.d/49-sansserif.conf +21 -0
- data/vendor/local/etc/fonts/conf.d/50-user.conf +15 -0
- data/vendor/local/etc/fonts/conf.d/51-local.conf +6 -0
- data/vendor/local/etc/fonts/conf.d/60-latin.conf +70 -0
- data/vendor/local/etc/fonts/conf.d/65-fonts-persian.conf +419 -0
- data/vendor/local/etc/fonts/conf.d/65-nonlatin.conf +196 -0
- data/vendor/local/etc/fonts/conf.d/69-unifont.conf +28 -0
- data/vendor/local/etc/fonts/conf.d/80-delicious.conf +19 -0
- data/vendor/local/etc/fonts/conf.d/90-synthetic.conf +64 -0
- data/vendor/local/etc/fonts/conf.d/README +23 -0
- data/vendor/local/etc/fonts/fonts.conf +155 -0
- data/vendor/local/include/cairo/cairo-deprecated.h +123 -0
- data/vendor/local/include/cairo/cairo-features.h +31 -0
- data/vendor/local/include/cairo/cairo-ft.h +118 -0
- data/vendor/local/include/cairo/cairo-gobject.h +192 -0
- data/vendor/local/include/cairo/cairo-pdf.h +94 -0
- data/vendor/local/include/cairo/cairo-ps.h +116 -0
- data/vendor/local/include/cairo/cairo-script-interpreter.h +124 -0
- data/vendor/local/include/cairo/cairo-script.h +98 -0
- data/vendor/local/include/cairo/cairo-svg.h +84 -0
- data/vendor/local/include/cairo/cairo-version.h +8 -0
- data/vendor/local/include/cairo/cairo-win32.h +112 -0
- data/vendor/local/include/cairo/cairo.h +3153 -0
- data/vendor/local/include/fontconfig/fcfreetype.h +59 -0
- data/vendor/local/include/fontconfig/fcprivate.h +124 -0
- data/vendor/local/include/fontconfig/fontconfig.h +1010 -0
- data/vendor/local/include/freetype2/config/ftconfig.h +706 -0
- data/vendor/local/include/freetype2/config/ftheader.h +832 -0
- data/vendor/local/include/freetype2/config/ftmodule.h +20 -0
- data/vendor/local/include/freetype2/config/ftoption.h +846 -0
- data/vendor/local/include/freetype2/config/ftstdlib.h +174 -0
- data/vendor/local/include/freetype2/freetype.h +4076 -0
- data/vendor/local/include/freetype2/ft2build.h +42 -0
- data/vendor/local/include/freetype2/ftadvanc.h +182 -0
- data/vendor/local/include/freetype2/ftautoh.h +402 -0
- data/vendor/local/include/freetype2/ftbbox.h +102 -0
- data/vendor/local/include/freetype2/ftbdf.h +210 -0
- data/vendor/local/include/freetype2/ftbitmap.h +227 -0
- data/vendor/local/include/freetype2/ftbzip2.h +102 -0
- data/vendor/local/include/freetype2/ftcache.h +1057 -0
- data/vendor/local/include/freetype2/ftcffdrv.h +254 -0
- data/vendor/local/include/freetype2/ftchapters.h +121 -0
- data/vendor/local/include/freetype2/ftcid.h +166 -0
- data/vendor/local/include/freetype2/fterrdef.h +249 -0
- data/vendor/local/include/freetype2/fterrors.h +198 -0
- data/vendor/local/include/freetype2/ftgasp.h +128 -0
- data/vendor/local/include/freetype2/ftglyph.h +620 -0
- data/vendor/local/include/freetype2/ftgxval.h +358 -0
- data/vendor/local/include/freetype2/ftgzip.h +149 -0
- data/vendor/local/include/freetype2/ftimage.h +1322 -0
- data/vendor/local/include/freetype2/ftincrem.h +353 -0
- data/vendor/local/include/freetype2/ftlcdfil.h +251 -0
- data/vendor/local/include/freetype2/ftlist.h +277 -0
- data/vendor/local/include/freetype2/ftlzw.h +99 -0
- data/vendor/local/include/freetype2/ftmac.h +274 -0
- data/vendor/local/include/freetype2/ftmm.h +377 -0
- data/vendor/local/include/freetype2/ftmodapi.h +641 -0
- data/vendor/local/include/freetype2/ftmoderr.h +194 -0
- data/vendor/local/include/freetype2/ftotval.h +203 -0
- data/vendor/local/include/freetype2/ftoutln.h +572 -0
- data/vendor/local/include/freetype2/ftpfr.h +172 -0
- data/vendor/local/include/freetype2/ftrender.h +238 -0
- data/vendor/local/include/freetype2/ftsizes.h +159 -0
- data/vendor/local/include/freetype2/ftsnames.h +200 -0
- data/vendor/local/include/freetype2/ftstroke.h +751 -0
- data/vendor/local/include/freetype2/ftsynth.h +81 -0
- data/vendor/local/include/freetype2/ftsystem.h +347 -0
- data/vendor/local/include/freetype2/fttrigon.h +350 -0
- data/vendor/local/include/freetype2/ftttdrv.h +170 -0
- data/vendor/local/include/freetype2/fttypes.h +598 -0
- data/vendor/local/include/freetype2/ftwinfnt.h +275 -0
- data/vendor/local/include/freetype2/ftxf86.h +83 -0
- data/vendor/local/include/freetype2/t1tables.h +662 -0
- data/vendor/local/include/freetype2/ttnameid.h +1237 -0
- data/vendor/local/include/freetype2/tttables.h +787 -0
- data/vendor/local/include/freetype2/tttags.h +111 -0
- data/vendor/local/include/freetype2/ttunpat.h +59 -0
- data/vendor/local/include/libpng16/png.h +3276 -0
- data/vendor/local/include/libpng16/pngconf.h +644 -0
- data/vendor/local/include/libpng16/pnglibconf.h +208 -0
- data/vendor/local/include/libxml2/libxml/DOCBparser.h +96 -0
- data/vendor/local/include/libxml2/libxml/HTMLparser.h +306 -0
- data/vendor/local/include/libxml2/libxml/HTMLtree.h +147 -0
- data/vendor/local/include/libxml2/libxml/SAX.h +173 -0
- data/vendor/local/include/libxml2/libxml/SAX2.h +178 -0
- data/vendor/local/include/libxml2/libxml/c14n.h +126 -0
- data/vendor/local/include/libxml2/libxml/catalog.h +182 -0
- data/vendor/local/include/libxml2/libxml/chvalid.h +230 -0
- data/vendor/local/include/libxml2/libxml/debugXML.h +217 -0
- data/vendor/local/include/libxml2/libxml/dict.h +80 -0
- data/vendor/local/include/libxml2/libxml/encoding.h +240 -0
- data/vendor/local/include/libxml2/libxml/entities.h +151 -0
- data/vendor/local/include/libxml2/libxml/globals.h +509 -0
- data/vendor/local/include/libxml2/libxml/hash.h +233 -0
- data/vendor/local/include/libxml2/libxml/list.h +137 -0
- data/vendor/local/include/libxml2/libxml/nanoftp.h +163 -0
- data/vendor/local/include/libxml2/libxml/nanohttp.h +81 -0
- data/vendor/local/include/libxml2/libxml/parser.h +1241 -0
- data/vendor/local/include/libxml2/libxml/parserInternals.h +644 -0
- data/vendor/local/include/libxml2/libxml/pattern.h +100 -0
- data/vendor/local/include/libxml2/libxml/relaxng.h +217 -0
- data/vendor/local/include/libxml2/libxml/schemasInternals.h +958 -0
- data/vendor/local/include/libxml2/libxml/schematron.h +142 -0
- data/vendor/local/include/libxml2/libxml/threads.h +84 -0
- data/vendor/local/include/libxml2/libxml/tree.h +1310 -0
- data/vendor/local/include/libxml2/libxml/uri.h +94 -0
- data/vendor/local/include/libxml2/libxml/valid.h +458 -0
- data/vendor/local/include/libxml2/libxml/xinclude.h +129 -0
- data/vendor/local/include/libxml2/libxml/xlink.h +189 -0
- data/vendor/local/include/libxml2/libxml/xmlIO.h +366 -0
- data/vendor/local/include/libxml2/libxml/xmlautomata.h +146 -0
- data/vendor/local/include/libxml2/libxml/xmlerror.h +945 -0
- data/vendor/local/include/libxml2/libxml/xmlexports.h +162 -0
- data/vendor/local/include/libxml2/libxml/xmlmemory.h +224 -0
- data/vendor/local/include/libxml2/libxml/xmlmodule.h +57 -0
- data/vendor/local/include/libxml2/libxml/xmlreader.h +428 -0
- data/vendor/local/include/libxml2/libxml/xmlregexp.h +222 -0
- data/vendor/local/include/libxml2/libxml/xmlsave.h +88 -0
- data/vendor/local/include/libxml2/libxml/xmlschemas.h +246 -0
- data/vendor/local/include/libxml2/libxml/xmlschemastypes.h +151 -0
- data/vendor/local/include/libxml2/libxml/xmlstring.h +140 -0
- data/vendor/local/include/libxml2/libxml/xmlunicode.h +202 -0
- data/vendor/local/include/libxml2/libxml/xmlversion.h +489 -0
- data/vendor/local/include/libxml2/libxml/xmlwriter.h +488 -0
- data/vendor/local/include/libxml2/libxml/xpath.h +557 -0
- data/vendor/local/include/libxml2/libxml/xpathInternals.h +632 -0
- data/vendor/local/include/libxml2/libxml/xpointer.h +114 -0
- data/vendor/local/include/pixman-1/pixman-version.h +50 -0
- data/vendor/local/include/pixman-1/pixman.h +1111 -0
- data/vendor/local/include/png.h +3276 -0
- data/vendor/local/include/pngconf.h +644 -0
- data/vendor/local/include/pnglibconf.h +208 -0
- data/vendor/local/include/zconf.h +511 -0
- data/vendor/local/include/zlib.h +1768 -0
- data/vendor/local/lib/cmake/libxml2/libxml2-config.cmake +50 -0
- data/vendor/local/lib/fontconfig.def +207 -0
- data/vendor/local/lib/libcairo-gobject.a +0 -0
- data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
- data/vendor/local/lib/libcairo-gobject.la +41 -0
- data/vendor/local/lib/libcairo-script-interpreter.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.la +41 -0
- data/vendor/local/lib/libcairo.a +0 -0
- data/vendor/local/lib/libcairo.dll.a +0 -0
- data/vendor/local/lib/libcairo.la +41 -0
- data/vendor/local/lib/libfontconfig.dll.a +0 -0
- data/vendor/local/lib/libfontconfig.la +41 -0
- data/vendor/local/lib/libfreetype.a +0 -0
- data/vendor/local/lib/libfreetype.dll.a +0 -0
- data/vendor/local/lib/libfreetype.la +41 -0
- data/vendor/local/lib/libpixman-1.a +0 -0
- data/vendor/local/lib/libpixman-1.dll.a +0 -0
- data/vendor/local/lib/libpixman-1.la +41 -0
- data/vendor/local/lib/libpng.a +0 -0
- data/vendor/local/lib/libpng.dll.a +0 -0
- data/vendor/local/lib/libpng.la +41 -0
- data/vendor/local/lib/libpng16.a +0 -0
- data/vendor/local/lib/libpng16.dll.a +0 -0
- data/vendor/local/lib/libpng16.la +41 -0
- data/vendor/local/lib/libxml2.a +0 -0
- data/vendor/local/lib/libxml2.dll.a +0 -0
- data/vendor/local/lib/libxml2.la +41 -0
- data/vendor/local/lib/libz.a +0 -0
- data/vendor/local/lib/libz.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/cairo-fc.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-ft.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-gobject.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-pdf.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-png.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-ps.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-script.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-svg.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-win32.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo.pc +13 -0
- data/vendor/local/lib/pkgconfig/fontconfig.pc +18 -0
- data/vendor/local/lib/pkgconfig/freetype2.pc +14 -0
- data/vendor/local/lib/pkgconfig/libpng.pc +11 -0
- data/vendor/local/lib/pkgconfig/libpng16.pc +11 -0
- data/vendor/local/lib/pkgconfig/libxml-2.0.pc +13 -0
- data/vendor/local/lib/pkgconfig/pixman-1.pc +11 -0
- data/vendor/local/lib/pkgconfig/zlib.pc +13 -0
- data/vendor/local/lib/xml2Conf.sh +8 -0
- data/vendor/local/share/aclocal/freetype2.m4 +194 -0
- data/vendor/local/share/aclocal/libxml.m4 +188 -0
- data/vendor/local/share/doc/libxml2-2.9.2/Copyright +23 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testHTML.c +880 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testSAX.c +1198 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testXPath.c +229 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/xmllint.c +3801 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/DOM.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/FAQ.html +299 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/Libxml2-Logo-180x168.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/Libxml2-Logo-90x34.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/encoding.html +217 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/examples.xml +751 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/examples.xsl +174 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/book1.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/index.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/left.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-DOCBparser.html +51 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-HTMLparser.html +184 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-HTMLtree.html +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-SAX.html +125 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-SAX2.html +128 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-c14n.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-catalog.html +142 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-chvalid.html +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-debugXML.html +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-dict.html +58 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-encoding.html +124 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-entities.html +79 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-globals.html +152 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-hash.html +116 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-lib.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-list.html +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-nanoftp.html +94 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-nanohttp.html +65 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-parser.html +559 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-parserInternals.html +322 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-pattern.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-relaxng.html +162 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-schemasInternals.html +373 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-schematron.html +81 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-threads.html +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-tree.html +990 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-uri.html +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-valid.html +289 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xinclude.html +59 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xlink.html +82 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlIO.html +212 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlautomata.html +85 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlerror.html +865 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlexports.html +20 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlmemory.html +107 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlmodule.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlreader.html +330 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlregexp.html +143 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlsave.html +60 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlschemas.html +185 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlschemastypes.html +123 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlstring.html +108 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlunicode.html +512 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlversion.html +63 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlwriter.html +261 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpath.html +316 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpathInternals.html +394 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpointer.html +83 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xzlib.html +16 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/right.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/index.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io1.c +166 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io1.res +5 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io2.c +58 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io2.res +2 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/libxml.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse1.c +56 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse2.c +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse3.c +60 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse4.c +143 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader1.c +107 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader1.res +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader2.c +122 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader3.c +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader3.res +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader4.c +122 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader4.res +3 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/redhat.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/smallfootonly.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/structure.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test1.xml +1 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test2.xml +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test3.xml +39 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/testWriter.c +1198 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree1.c +94 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree1.res +4 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree2.c +118 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree2.res +18 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tst.xml +7 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apa.html +8 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apb.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apc.html +82 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apd.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ape.html +78 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apf.html +67 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apg.html +75 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/aph.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/api.html +4 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s02.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s03.html +47 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s04.html +54 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s05.html +55 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s06.html +35 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s07.html +30 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s08.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s09.html +63 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/1.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/10.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/2.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/3.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/4.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/5.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/6.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/7.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/8.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/9.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/caution.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/draft.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/important.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/next.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/note.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/prev.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/tip.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-minus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-plus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/warning.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeaddattribute.c +64 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeaddkeyword.c +75 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeconvert.c +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includegetattribute.c +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includekeyword.c +79 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includexpath.c +74 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/index.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ix01.html +1 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/xmltutorial.pdf +1336 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/w3c.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/writer.xml +2 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xml.html +5995 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath1.c +250 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath1.res +5 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath2.c +190 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath2.res +30 -0
- data/vendor/local/share/fontconfig/conf.avail/10-autohint.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-no-sub-pixel.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf +81 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-unhinted.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-default.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-light.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/20-unhint-small-vera.conf +48 -0
- data/vendor/local/share/fontconfig/conf.avail/25-unhint-nonlatin.conf +128 -0
- data/vendor/local/share/fontconfig/conf.avail/30-metric-aliases.conf +546 -0
- data/vendor/local/share/fontconfig/conf.avail/30-urw-aliases.conf +24 -0
- data/vendor/local/share/fontconfig/conf.avail/40-nonlatin.conf +231 -0
- data/vendor/local/share/fontconfig/conf.avail/45-latin.conf +189 -0
- data/vendor/local/share/fontconfig/conf.avail/49-sansserif.conf +21 -0
- data/vendor/local/share/fontconfig/conf.avail/50-user.conf +15 -0
- data/vendor/local/share/fontconfig/conf.avail/51-local.conf +6 -0
- data/vendor/local/share/fontconfig/conf.avail/60-latin.conf +70 -0
- data/vendor/local/share/fontconfig/conf.avail/65-fonts-persian.conf +419 -0
- data/vendor/local/share/fontconfig/conf.avail/65-khmer.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/65-nonlatin.conf +196 -0
- data/vendor/local/share/fontconfig/conf.avail/69-unifont.conf +28 -0
- data/vendor/local/share/fontconfig/conf.avail/70-no-bitmaps.conf +12 -0
- data/vendor/local/share/fontconfig/conf.avail/70-yes-bitmaps.conf +12 -0
- data/vendor/local/share/fontconfig/conf.avail/80-delicious.conf +19 -0
- data/vendor/local/share/fontconfig/conf.avail/90-synthetic.conf +64 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-errors.html +122 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-fonts.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-memory.html +123 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-overloading.html +121 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-path.html +117 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-patterns.html +75 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-return-values.html +120 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-streams.html +92 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-surfaces.html +93 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Error-handling.html +397 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +428 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +452 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +342 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PNG-Support.html +315 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Paths.html +1194 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +577 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +129 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +197 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Raster-Sources.html +600 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +226 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Regions.html +810 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +302 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Script-Surfaces.html +360 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Transformations.html +394 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Types.html +156 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-User-Fonts.html +677 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Version-Information.html +342 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +326 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +280 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XCB-Surfaces.html +527 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +535 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.html +170 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +636 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +380 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +653 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +559 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +2231 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +956 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +1637 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-t.html +2695 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-drawing.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-fonts.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-support.html +44 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-surfaces.html +74 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-text.html +1138 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp2 +747 -0
- data/vendor/local/share/gtk-doc/html/cairo/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.10.html +177 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.12.html +193 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.2.html +179 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.4.html +123 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.6.html +107 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.8.html +128 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-all.html +1122 -0
- data/vendor/local/share/gtk-doc/html/cairo/index.html +157 -0
- data/vendor/local/share/gtk-doc/html/cairo/index.sgml +833 -0
- data/vendor/local/share/gtk-doc/html/cairo/language-bindings.html +73 -0
- data/vendor/local/share/gtk-doc/html/cairo/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/style.css +266 -0
- data/vendor/local/share/gtk-doc/html/cairo/up.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/general.html +38 -0
- data/vendor/local/share/gtk-doc/html/libxml2/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/index.html +67 -0
- data/vendor/local/share/gtk-doc/html/libxml2/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-DOCBparser.html +138 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-HTMLparser.html +373 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-HTMLtree.html +172 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-SAX.html +243 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-SAX2.html +247 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-c14n.html +91 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-catalog.html +278 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-chvalid.html +241 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-debugXML.html +225 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-dict.html +134 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-encoding.html +218 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-entities.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-globals.html +383 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-hash.html +214 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-list.html +226 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-nanoftp.html +187 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-nanohttp.html +142 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-parser.html +766 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-parserInternals.html +688 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-pattern.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-relaxng.html +278 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-schemasInternals.html +860 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-schematron.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-threads.html +161 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-tree.html +1597 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-uri.html +154 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-valid.html +528 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xinclude.html +169 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xlink.html +160 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlIO.html +347 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlautomata.html +176 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlerror.html +953 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlexports.html +87 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlmemory.html +186 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlmodule.html +97 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlreader.html +565 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlregexp.html +280 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlsave.html +133 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlschemas.html +314 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlschemastypes.html +237 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlstring.html +217 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlunicode.html +887 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlversion.html +292 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlwriter.html +479 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpath.html +542 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpathInternals.html +787 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpointer.html +171 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2.devhelp +3573 -0
- data/vendor/local/share/gtk-doc/html/libxml2/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/style.css +66 -0
- data/vendor/local/share/gtk-doc/html/libxml2/up.png +0 -0
- data/vendor/local/share/license/cairo/AUTHORS +115 -0
- data/vendor/local/share/license/cairo/COPYING +33 -0
- data/vendor/local/share/license/cairo/COPYING-LGPL-2.1 +510 -0
- data/vendor/local/share/license/cairo/COPYING-MPL-1.1 +470 -0
- data/vendor/local/share/license/cairo/README +204 -0
- data/vendor/local/share/license/cairo/README.win32 +66 -0
- data/vendor/local/share/license/fontconfig/AUTHORS +3 -0
- data/vendor/local/share/license/fontconfig/COPYING +28 -0
- data/vendor/local/share/license/fontconfig/README +1484 -0
- data/vendor/local/share/license/freetype/README +83 -0
- data/vendor/local/share/license/freetype/README.git +50 -0
- data/vendor/local/share/license/libpng/README +215 -0
- data/vendor/local/share/license/libxml2/AUTHORS +5 -0
- data/vendor/local/share/license/libxml2/COPYING +23 -0
- data/vendor/local/share/license/libxml2/README +39 -0
- data/vendor/local/share/license/libxml2/README.tests +39 -0
- data/vendor/local/share/license/pixman/AUTHORS +0 -0
- data/vendor/local/share/license/pixman/COPYING +42 -0
- data/vendor/local/share/license/pixman/README +116 -0
- data/vendor/local/share/license/zlib/README +115 -0
- data/vendor/local/share/man/man1/freetype-config.1 +108 -0
- data/vendor/local/share/man/man1/xml2-config.1 +30 -0
- data/vendor/local/share/man/man1/xmlcatalog.1 +340 -0
- data/vendor/local/share/man/man1/xmllint.1 +647 -0
- data/vendor/local/share/man/man3/libpng.3 +6217 -0
- data/vendor/local/share/man/man3/libpngpf.3 +18 -0
- data/vendor/local/share/man/man3/libxml.3 +71 -0
- data/vendor/local/share/man/man5/png.5 +74 -0
- data/vendor/local/share/xml/fontconfig/fonts.dtd +233 -0
- metadata +774 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>F.�Code for Add Attribute Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ape.html" title="E.�Code for Add Keyword Example"><link rel="next" href="apg.html" title="G.�Code for Retrieving Attribute Value Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">F.�Code for Add Attribute Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ape.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="apg.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="addattributeappendix"></a>F.�Code for Add Attribute Example</h2></div></div><div></div></div><p>
|
2
|
+
</p><pre class="programlisting">
|
3
|
+
#include <stdio.h>
|
4
|
+
#include <string.h>
|
5
|
+
#include <stdlib.h>
|
6
|
+
#include <libxml/xmlmemory.h>
|
7
|
+
#include <libxml/parser.h>
|
8
|
+
|
9
|
+
|
10
|
+
xmlDocPtr
|
11
|
+
parseDoc(char *docname, char *uri) {
|
12
|
+
|
13
|
+
xmlDocPtr doc;
|
14
|
+
xmlNodePtr cur;
|
15
|
+
xmlNodePtr newnode;
|
16
|
+
xmlAttrPtr newattr;
|
17
|
+
|
18
|
+
doc = xmlParseFile(docname);
|
19
|
+
|
20
|
+
if (doc == NULL ) {
|
21
|
+
fprintf(stderr,"Document not parsed successfully. \n");
|
22
|
+
return (NULL);
|
23
|
+
}
|
24
|
+
|
25
|
+
cur = xmlDocGetRootElement(doc);
|
26
|
+
|
27
|
+
if (cur == NULL) {
|
28
|
+
fprintf(stderr,"empty document\n");
|
29
|
+
xmlFreeDoc(doc);
|
30
|
+
return (NULL);
|
31
|
+
}
|
32
|
+
|
33
|
+
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
34
|
+
fprintf(stderr,"document of the wrong type, root node != story");
|
35
|
+
xmlFreeDoc(doc);
|
36
|
+
return (NULL);
|
37
|
+
}
|
38
|
+
|
39
|
+
newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
|
40
|
+
newattr = xmlNewProp (newnode, "uri", uri);
|
41
|
+
return(doc);
|
42
|
+
}
|
43
|
+
|
44
|
+
int
|
45
|
+
main(int argc, char **argv) {
|
46
|
+
|
47
|
+
char *docname;
|
48
|
+
char *uri;
|
49
|
+
xmlDocPtr doc;
|
50
|
+
|
51
|
+
if (argc <= 2) {
|
52
|
+
printf("Usage: %s docname, uri\n", argv[0]);
|
53
|
+
return(0);
|
54
|
+
}
|
55
|
+
|
56
|
+
docname = argv[1];
|
57
|
+
uri = argv[2];
|
58
|
+
doc = parseDoc (docname, uri);
|
59
|
+
if (doc != NULL) {
|
60
|
+
xmlSaveFormatFile (docname, doc, 1);
|
61
|
+
xmlFreeDoc(doc);
|
62
|
+
}
|
63
|
+
return (1);
|
64
|
+
}
|
65
|
+
|
66
|
+
</pre><p>
|
67
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ape.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="apg.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.�Code for Add Keyword Example�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�G.�Code for Retrieving Attribute Value Example</td></tr></table></div></body></html>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>G.�Code for Retrieving Attribute Value Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apf.html" title="F.�Code for Add Attribute Example"><link rel="next" href="aph.html" title="H.�Code for Encoding Conversion Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">G.�Code for Retrieving Attribute Value Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apf.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="aph.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="getattributeappendix"></a>G.�Code for Retrieving Attribute Value Example</h2></div></div><div></div></div><p>
|
2
|
+
</p><pre class="programlisting">
|
3
|
+
#include <stdio.h>
|
4
|
+
#include <string.h>
|
5
|
+
#include <stdlib.h>
|
6
|
+
#include <libxml/xmlmemory.h>
|
7
|
+
#include <libxml/parser.h>
|
8
|
+
|
9
|
+
void
|
10
|
+
getReference (xmlDocPtr doc, xmlNodePtr cur) {
|
11
|
+
|
12
|
+
xmlChar *uri;
|
13
|
+
cur = cur->xmlChildrenNode;
|
14
|
+
while (cur != NULL) {
|
15
|
+
if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
|
16
|
+
uri = xmlGetProp(cur, "uri");
|
17
|
+
printf("uri: %s\n", uri);
|
18
|
+
xmlFree(uri);
|
19
|
+
}
|
20
|
+
cur = cur->next;
|
21
|
+
}
|
22
|
+
return;
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
void
|
27
|
+
parseDoc(char *docname) {
|
28
|
+
|
29
|
+
xmlDocPtr doc;
|
30
|
+
xmlNodePtr cur;
|
31
|
+
|
32
|
+
doc = xmlParseFile(docname);
|
33
|
+
|
34
|
+
if (doc == NULL ) {
|
35
|
+
fprintf(stderr,"Document not parsed successfully. \n");
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
|
39
|
+
cur = xmlDocGetRootElement(doc);
|
40
|
+
|
41
|
+
if (cur == NULL) {
|
42
|
+
fprintf(stderr,"empty document\n");
|
43
|
+
xmlFreeDoc(doc);
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
|
47
|
+
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
48
|
+
fprintf(stderr,"document of the wrong type, root node != story");
|
49
|
+
xmlFreeDoc(doc);
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
|
53
|
+
getReference (doc, cur);
|
54
|
+
xmlFreeDoc(doc);
|
55
|
+
return;
|
56
|
+
}
|
57
|
+
|
58
|
+
int
|
59
|
+
main(int argc, char **argv) {
|
60
|
+
|
61
|
+
char *docname;
|
62
|
+
|
63
|
+
if (argc <= 1) {
|
64
|
+
printf("Usage: %s docname\n", argv[0]);
|
65
|
+
return(0);
|
66
|
+
}
|
67
|
+
|
68
|
+
docname = argv[1];
|
69
|
+
parseDoc (docname);
|
70
|
+
|
71
|
+
return (1);
|
72
|
+
}
|
73
|
+
|
74
|
+
</pre><p>
|
75
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apf.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="aph.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">F.�Code for Add Attribute Example�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�H.�Code for Encoding Conversion Example</td></tr></table></div></body></html>
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>H.�Code for Encoding Conversion Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apg.html" title="G.�Code for Retrieving Attribute Value Example"><link rel="next" href="api.html" title="I.�Acknowledgements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">H.�Code for Encoding Conversion Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apg.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="api.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="convertappendix"></a>H.�Code for Encoding Conversion Example</h2></div></div><div></div></div><p>
|
2
|
+
</p><pre class="programlisting">
|
3
|
+
#include <string.h>
|
4
|
+
#include <libxml/parser.h>
|
5
|
+
|
6
|
+
|
7
|
+
unsigned char*
|
8
|
+
convert (unsigned char *in, char *encoding)
|
9
|
+
{
|
10
|
+
unsigned char *out;
|
11
|
+
int ret,size,out_size,temp;
|
12
|
+
xmlCharEncodingHandlerPtr handler;
|
13
|
+
|
14
|
+
size = (int)strlen(in)+1;
|
15
|
+
out_size = size*2-1;
|
16
|
+
out = malloc((size_t)out_size);
|
17
|
+
|
18
|
+
if (out) {
|
19
|
+
handler = xmlFindCharEncodingHandler(encoding);
|
20
|
+
|
21
|
+
if (!handler) {
|
22
|
+
free(out);
|
23
|
+
out = NULL;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
if (out) {
|
27
|
+
temp=size-1;
|
28
|
+
ret = handler->input(out, &out_size, in, &temp);
|
29
|
+
if (ret || temp-size+1) {
|
30
|
+
if (ret) {
|
31
|
+
printf("conversion wasn't successful.\n");
|
32
|
+
} else {
|
33
|
+
printf("conversion wasn't successful. converted: %i octets.\n",temp);
|
34
|
+
}
|
35
|
+
free(out);
|
36
|
+
out = NULL;
|
37
|
+
} else {
|
38
|
+
out = realloc(out,out_size+1);
|
39
|
+
out[out_size]=0; /*null terminating out*/
|
40
|
+
|
41
|
+
}
|
42
|
+
} else {
|
43
|
+
printf("no mem\n");
|
44
|
+
}
|
45
|
+
return (out);
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
int
|
50
|
+
main(int argc, char **argv) {
|
51
|
+
|
52
|
+
unsigned char *content, *out;
|
53
|
+
xmlDocPtr doc;
|
54
|
+
xmlNodePtr rootnode;
|
55
|
+
char *encoding = "ISO-8859-1";
|
56
|
+
|
57
|
+
|
58
|
+
if (argc <= 1) {
|
59
|
+
printf("Usage: %s content\n", argv[0]);
|
60
|
+
return(0);
|
61
|
+
}
|
62
|
+
|
63
|
+
content = argv[1];
|
64
|
+
|
65
|
+
out = convert(content, encoding);
|
66
|
+
|
67
|
+
doc = xmlNewDoc ("1.0");
|
68
|
+
rootnode = xmlNewDocNode(doc, NULL, (const xmlChar*)"root", out);
|
69
|
+
xmlDocSetRootElement(doc, rootnode);
|
70
|
+
|
71
|
+
xmlSaveFormatFileEnc("-", doc, encoding, 1);
|
72
|
+
return (1);
|
73
|
+
}
|
74
|
+
|
75
|
+
</pre><p>
|
76
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apg.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">G.�Code for Retrieving Attribute Value Example�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�I.�Acknowledgements</td></tr></table></div></body></html>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>I.�Acknowledgements</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="aph.html" title="H.�Code for Encoding Conversion Example"><link rel="next" href="ix01.html" title="Index"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">I.�Acknowledgements</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="aph.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ix01.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id2588597"></a>I.�Acknowledgements</h2></div></div><div></div></div><p>A number of people have generously offered feedback, code and
|
2
|
+
suggested improvements to this tutorial. In no particular order:
|
3
|
+
<span class="simplelist">Daniel Veillard, Marcus Labib Iskander, Christopher R. Harris, Igor Zlatkovic, Niraj Tolia, David Turover</span>
|
4
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aph.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ix01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">H.�Code for Encoding Conversion Example�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Index</td></tr></table></div></body></html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Data Types</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="index.html" title="Libxml Tutorial"><link rel="next" href="ar01s03.html" title="Parsing the file"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Data Types</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s03.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialdatatypes"></a>Data Types</h2></div></div><div></div></div><p><span class="application">Libxml</span> declares a number of data types we
|
2
|
+
will encounter repeatedly, hiding the messy stuff so you do not have to deal
|
3
|
+
with it unless you have some specific need.</p><p>
|
4
|
+
</p><div class="variablelist"><dl><dt><span class="term"><a class="indexterm" name="id2526186"></a>
|
5
|
+
<a href="http://xmlsoft.org/html/libxml-tree.html#XMLCHAR" target="_top">xmlChar</a></span></dt><dd><p>A basic replacement for char, a byte in a UTF-8 encoded
|
6
|
+
string. If your data uses another encoding, it must be converted to
|
7
|
+
UTF-8 for use with <span class="application">libxml's</span>
|
8
|
+
functions. More information on encoding is available on the <a href="http://www.xmlsoft.org/encoding.html" target="_top"><span class="application">libxml</span> encoding support web page</a>.</p></dd><dt><span class="term"><a class="indexterm" name="id2526232"></a>
|
9
|
+
<a href="http://xmlsoft.org/html/libxml-tree.html#XMLDOC" target="_top">xmlDoc</a></span></dt><dd><p>A structure containing the tree created by a parsed doc. <a href="http://xmlsoft.org/html/libxml-tree.html#XMLDOCPTR" target="_top">xmlDocPtr</a>
|
10
|
+
is a pointer to the structure.</p></dd><dt><span class="term"><a class="indexterm" name="id2526266"></a>
|
11
|
+
<a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR" target="_top">xmlNodePtr</a>
|
12
|
+
and <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODE" target="_top">xmlNode</a></span></dt><dd><p>A structure containing a single node. <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODEPTR" target="_top">xmlNodePtr</a>
|
13
|
+
is a pointer to the structure, and is used in traversing the document tree.</p></dd></dl></div><p>
|
14
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Libxml Tutorial�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Parsing the file</td></tr></table></div></body></html>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Parsing the file</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s02.html" title="Data Types"><link rel="next" href="ar01s04.html" title="Retrieving Element Content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Parsing the file</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s04.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialparsing"></a>Parsing the file</h2></div></div><div></div></div><p><a class="indexterm" name="fileparsing"></a>
|
2
|
+
Parsing the file requires only the name of the file and a single
|
3
|
+
function call, plus error checking. Full code: <a href="apc.html" title="C.�Code for Keyword Example">Appendix�C, <i>Code for Keyword Example</i></a></p><p>
|
4
|
+
</p><pre class="programlisting">
|
5
|
+
<a name="declaredoc"></a><img src="images/callouts/1.png" alt="1" border="0"> xmlDocPtr doc;
|
6
|
+
<a name="declarenode"></a><img src="images/callouts/2.png" alt="2" border="0"> xmlNodePtr cur;
|
7
|
+
|
8
|
+
<a name="parsefile"></a><img src="images/callouts/3.png" alt="3" border="0"> doc = xmlParseFile(docname);
|
9
|
+
|
10
|
+
<a name="checkparseerror"></a><img src="images/callouts/4.png" alt="4" border="0"> if (doc == NULL ) {
|
11
|
+
fprintf(stderr,"Document not parsed successfully. \n");
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
|
15
|
+
<a name="getrootelement"></a><img src="images/callouts/5.png" alt="5" border="0"> cur = xmlDocGetRootElement(doc);
|
16
|
+
|
17
|
+
<a name="checkemptyerror"></a><img src="images/callouts/6.png" alt="6" border="0"> if (cur == NULL) {
|
18
|
+
fprintf(stderr,"empty document\n");
|
19
|
+
xmlFreeDoc(doc);
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
|
23
|
+
<a name="checkroottype"></a><img src="images/callouts/7.png" alt="7" border="0"> if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
24
|
+
fprintf(stderr,"document of the wrong type, root node != story");
|
25
|
+
xmlFreeDoc(doc);
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
|
29
|
+
</pre><p>
|
30
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#declaredoc"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Declare the pointer that will point to your parsed document.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#declarenode"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Declare a node pointer (you'll need this in order to
|
31
|
+
interact with individual nodes).</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkparseerror"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>Check to see that the document was successfully parsed. If it
|
32
|
+
was not, <span class="application">libxml</span> will at this point
|
33
|
+
register an error and stop.
|
34
|
+
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p><a class="indexterm" name="id2525337"></a>
|
35
|
+
One common example of an error at this point is improper
|
36
|
+
handling of encoding. The <span class="acronym">XML</span> standard requires
|
37
|
+
documents stored with an encoding other than UTF-8 or UTF-16 to
|
38
|
+
contain an explicit declaration of their encoding. If the
|
39
|
+
declaration is there, <span class="application">libxml</span> will
|
40
|
+
automatically perform the necessary conversion to UTF-8 for
|
41
|
+
you. More information on <span class="acronym">XML's</span> encoding
|
42
|
+
requirements is contained in the <a href="http://www.w3.org/TR/REC-xml#charencoding" target="_top">standard</a>.</p></td></tr></table></div><p>
|
43
|
+
</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#getrootelement"><img src="images/callouts/5.png" alt="5" border="0"></a> </td><td valign="top" align="left"><p>Retrieve the document's root element.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkemptyerror"><img src="images/callouts/6.png" alt="6" border="0"></a> </td><td valign="top" align="left"><p>Check to make sure the document actually contains something.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#checkroottype"><img src="images/callouts/7.png" alt="7" border="0"></a> </td><td valign="top" align="left"><p>In our case, we need to make sure the document is the right
|
44
|
+
type. "story" is the root type of the documents used in this
|
45
|
+
tutorial.</p></td></tr></table></div><p>
|
46
|
+
<a class="indexterm" name="id2525415"></a>
|
47
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Data Types�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Retrieving Element Content</td></tr></table></div></body></html>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retrieving Element Content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s03.html" title="Parsing the file"><link rel="next" href="ar01s05.html" title="Using XPath to Retrieve Element Content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retrieving Element Content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s05.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialgettext"></a>Retrieving Element Content</h2></div></div><div></div></div><p><a class="indexterm" name="id2525439"></a>
|
2
|
+
Retrieving the content of an element involves traversing the document
|
3
|
+
tree until you find what you are looking for. In this case, we are looking
|
4
|
+
for an element called "keyword" contained within element called "story". The
|
5
|
+
process to find the node we are interested in involves tediously walking the
|
6
|
+
tree. We assume you already have an xmlDocPtr called <tt class="varname">doc</tt>
|
7
|
+
and an xmlNodPtr called <tt class="varname">cur</tt>.</p><p>
|
8
|
+
</p><pre class="programlisting">
|
9
|
+
<a name="getchildnode"></a><img src="images/callouts/1.png" alt="1" border="0">cur = cur->xmlChildrenNode;
|
10
|
+
<a name="huntstoryinfo"></a><img src="images/callouts/2.png" alt="2" border="0">while (cur != NULL) {
|
11
|
+
if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
|
12
|
+
parseStory (doc, cur);
|
13
|
+
}
|
14
|
+
|
15
|
+
cur = cur->next;
|
16
|
+
}
|
17
|
+
</pre><p>
|
18
|
+
|
19
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#getchildnode"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Get the first child node of <tt class="varname">cur</tt>. At this
|
20
|
+
point, <tt class="varname">cur</tt> points at the document root, which is
|
21
|
+
the element "story".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#huntstoryinfo"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>This loop iterates through the elements that are children of
|
22
|
+
"story", looking for one called "storyinfo". That
|
23
|
+
is the element that will contain the "keywords" we are
|
24
|
+
looking for. It uses the <span class="application">libxml</span> string
|
25
|
+
comparison
|
26
|
+
function, <tt class="function"><a href="http://xmlsoft.org/html/libxml-parser.html#XMLSTRCMP" target="_top">xmlStrcmp</a></tt>. If there is a match, it calls the function <tt class="function">parseStory</tt>.</p></td></tr></table></div><p>
|
27
|
+
</p><p>
|
28
|
+
</p><pre class="programlisting">
|
29
|
+
void
|
30
|
+
parseStory (xmlDocPtr doc, xmlNodePtr cur) {
|
31
|
+
|
32
|
+
xmlChar *key;
|
33
|
+
<a name="anothergetchild"></a><img src="images/callouts/1.png" alt="1" border="0"> cur = cur->xmlChildrenNode;
|
34
|
+
<a name="findkeyword"></a><img src="images/callouts/2.png" alt="2" border="0"> while (cur != NULL) {
|
35
|
+
if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {
|
36
|
+
<a name="foundkeyword"></a><img src="images/callouts/3.png" alt="3" border="0"> key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
|
37
|
+
printf("keyword: %s\n", key);
|
38
|
+
xmlFree(key);
|
39
|
+
}
|
40
|
+
cur = cur->next;
|
41
|
+
}
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
</pre><p>
|
45
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#anothergetchild"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Again we get the first child node.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#findkeyword"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Like the loop above, we then iterate through the nodes, looking
|
46
|
+
for one that matches the element we're interested in, in this case
|
47
|
+
"keyword".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#foundkeyword"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>When we find the "keyword" element, we need to print
|
48
|
+
its contents. Remember that in <span class="acronym">XML</span>, the text
|
49
|
+
contained within an element is a child node of that element, so we
|
50
|
+
turn to <tt class="varname">cur->xmlChildrenNode</tt>. To retrieve it, we
|
51
|
+
use the function <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLNODELISTGETSTRING" target="_top">xmlNodeListGetString</a></tt>, which also takes the <tt class="varname">doc</tt> pointer as an argument. In this case, we just print it out.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>Because <tt class="function">xmlNodeListGetString</tt> allocates
|
52
|
+
memory for the string it returns, you must use
|
53
|
+
<tt class="function">xmlFree</tt> to free it.</p></td></tr></table></div></td></tr></table></div><p>
|
54
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Parsing the file�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Using XPath to Retrieve Element Content</td></tr></table></div></body></html>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using XPath to Retrieve Element Content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s04.html" title="Retrieving Element Content"><link rel="next" href="ar01s06.html" title="Writing element content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using XPath to Retrieve Element Content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s06.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialxpath"></a>Using XPath to Retrieve Element Content</h2></div></div><div></div></div><p>In addition to walking the document tree to find an element,
|
2
|
+
<span class="application">Libxml2</span> includes support for
|
3
|
+
use of <span class="application">XPath</span> expressions to retrieve sets of
|
4
|
+
nodes that match a specified criteria. Full documentation of the
|
5
|
+
<span class="application">XPath</span> <span class="acronym">API</span> is <a href="http://xmlsoft.org/html/libxml-xpath.html" target="_top">here</a>.
|
6
|
+
</p><p><span class="application">XPath</span> allows searching through a document
|
7
|
+
for nodes that match specified criteria. In the example below we search
|
8
|
+
through a document for the contents of all <tt class="varname">keyword</tt>
|
9
|
+
elements.
|
10
|
+
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>A full discussion of <span class="application">XPath</span> is beyond
|
11
|
+
the scope of this document. For details on its use, see the <a href="http://www.w3.org/TR/xpath" target="_top">XPath specification</a>.</p></td></tr></table></div><p>
|
12
|
+
Full code for this example is at <a href="apd.html" title="D.�Code for XPath Example">Appendix�D, <i>Code for XPath Example</i></a>.
|
13
|
+
</p><p>Using <span class="application">XPath</span> requires setting up an
|
14
|
+
xmlXPathContext and then supplying the <span class="application">XPath</span>
|
15
|
+
expression and the context to the
|
16
|
+
<tt class="function">xmlXPathEvalExpression</tt> function. The function returns
|
17
|
+
an xmlXPathObjectPtr, which includes the set of nodes satisfying the
|
18
|
+
<span class="application">XPath</span> expression.</p><p>
|
19
|
+
</p><pre class="programlisting">
|
20
|
+
xmlXPathObjectPtr
|
21
|
+
getnodeset (xmlDocPtr doc, xmlChar *xpath){
|
22
|
+
|
23
|
+
<a name="cocontext"></a><img src="images/callouts/1.png" alt="1" border="0">xmlXPathContextPtr context;
|
24
|
+
xmlXPathObjectPtr result;
|
25
|
+
|
26
|
+
<a name="cocreatecontext"></a><img src="images/callouts/2.png" alt="2" border="0">context = xmlXPathNewContext(doc);
|
27
|
+
<a name="corunxpath"></a><img src="images/callouts/3.png" alt="3" border="0">result = xmlXPathEvalExpression(xpath, context);
|
28
|
+
<a name="cocheckxpathresult"></a><img src="images/callouts/4.png" alt="4" border="0">if(xmlXPathNodeSetIsEmpty(result->nodesetval)){
|
29
|
+
xmlXPathFreeObject(result);
|
30
|
+
printf("No result\n");
|
31
|
+
return NULL;
|
32
|
+
</pre><p>
|
33
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#cocontext"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First we declare our variables.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#cocreatecontext"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Initialize the <tt class="varname">context</tt> variable.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#corunxpath"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>Apply the <span class="application">XPath</span> expression.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#cocheckxpathresult"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>Check the result and free the memory allocated to
|
34
|
+
<tt class="varname">result</tt> if no result is found.</p></td></tr></table></div><p>
|
35
|
+
</p><p>The xmlPathObjectPtr returned by the function contains a set of nodes
|
36
|
+
and other information needed to iterate through the set and act on the
|
37
|
+
results. For this example, our functions returns the
|
38
|
+
<tt class="varname">xmlXPathObjectPtr</tt>. We use it to print the contents of
|
39
|
+
<tt class="varname">keyword</tt> nodes in our document. The node set object
|
40
|
+
includes the number of elements in the set (<tt class="varname">nodeNr</tt>) and
|
41
|
+
an array of nodes (<tt class="varname">nodeTab</tt>):
|
42
|
+
</p><pre class="programlisting">
|
43
|
+
<a name="conodesetcounter"></a><img src="images/callouts/1.png" alt="1" border="0">for (i=0; i < nodeset->nodeNr; i++) {
|
44
|
+
<a name="coprintkeywords"></a><img src="images/callouts/2.png" alt="2" border="0">keyword = xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1);
|
45
|
+
printf("keyword: %s\n", keyword);
|
46
|
+
xmlFree(keyword);
|
47
|
+
}
|
48
|
+
</pre><p>
|
49
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#conodesetcounter"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>The value of <tt class="varname">nodeset->Nr</tt> holds the number of
|
50
|
+
elements in the node set. Here we use it to iterate through the array.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#coprintkeywords"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Here we print the contents of each of the nodes returned.
|
51
|
+
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>Note that we are printing the child node of the node that is
|
52
|
+
returned, because the contents of the <tt class="varname">keyword</tt>
|
53
|
+
element are a child text node.</p></td></tr></table></div><p>
|
54
|
+
</p></td></tr></table></div><p>
|
55
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Retrieving Element Content�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Writing element content</td></tr></table></div></body></html>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing element content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s05.html" title="Using XPath to Retrieve Element Content"><link rel="next" href="ar01s07.html" title="Writing Attribute"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing element content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s07.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialwritingcontent"></a>Writing element content</h2></div></div><div></div></div><p><a class="indexterm" name="id2586968"></a>
|
2
|
+
Writing element content uses many of the same steps we used above
|
3
|
+
— parsing the document and walking the tree. We parse the document,
|
4
|
+
then traverse the tree to find the place we want to insert our element. For
|
5
|
+
this example, we want to again find the "storyinfo" element and
|
6
|
+
this time insert a keyword. Then we'll write the file to disk. Full code:
|
7
|
+
<a href="ape.html" title="E.�Code for Add Keyword Example">Appendix�E, <i>Code for Add Keyword Example</i></a></p><p>
|
8
|
+
The main difference in this example is in
|
9
|
+
<tt class="function">parseStory</tt>:
|
10
|
+
|
11
|
+
</p><pre class="programlisting">
|
12
|
+
void
|
13
|
+
parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
|
14
|
+
|
15
|
+
<a name="addkeyword"></a><img src="images/callouts/1.png" alt="1" border="0"> xmlNewTextChild (cur, NULL, "keyword", keyword);
|
16
|
+
return;
|
17
|
+
}
|
18
|
+
</pre><p>
|
19
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#addkeyword"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>The <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD" target="_top">xmlNewTextChild</a></tt>
|
20
|
+
function adds a new child element at the
|
21
|
+
current node pointer's location in the
|
22
|
+
tree, specified by <tt class="varname">cur</tt>.</p></td></tr></table></div><p>
|
23
|
+
</p><p>
|
24
|
+
<a class="indexterm" name="id2587052"></a>
|
25
|
+
Once the node has been added, we would like to write the document to
|
26
|
+
file. Is you want the element to have a namespace, you can add it here as
|
27
|
+
well. In our case, the namespace is NULL.
|
28
|
+
</p><pre class="programlisting">
|
29
|
+
xmlSaveFormatFile (docname, doc, 1);
|
30
|
+
</pre><p>
|
31
|
+
The first parameter is the name of the file to be written. You'll notice
|
32
|
+
it is the same as the file we just read. In this case, we just write over
|
33
|
+
the old file. The second parameter is a pointer to the xmlDoc
|
34
|
+
structure. Setting the third parameter equal to one ensures indenting on output.
|
35
|
+
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using XPath to Retrieve Element Content�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Writing Attribute</td></tr></table></div></body></html>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Attribute</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s06.html" title="Writing element content"><link rel="next" href="ar01s08.html" title="Retrieving Attributes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Attribute</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s08.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialwritingattribute"></a>Writing Attribute</h2></div></div><div></div></div><p><a class="indexterm" name="id2587093"></a>
|
2
|
+
Writing an attribute is similar to writing text to a new element. In
|
3
|
+
this case, we'll add a reference <span class="acronym">URI</span> to our
|
4
|
+
document. Full code:<a href="apf.html" title="F.�Code for Add Attribute Example">Appendix�F, <i>Code for Add Attribute Example</i></a>.</p><p>
|
5
|
+
A <tt class="sgmltag-element">reference</tt> is a child of the <tt class="sgmltag-element">story</tt>
|
6
|
+
element, so finding the place to put our new element and attribute is
|
7
|
+
simple. As soon as we do the error-checking test in our
|
8
|
+
<tt class="function">parseDoc</tt>, we are in the right spot to add our
|
9
|
+
element. But before we do that, we need to make a declaration using a
|
10
|
+
data type we have not seen yet:
|
11
|
+
</p><pre class="programlisting">
|
12
|
+
xmlAttrPtr newattr;
|
13
|
+
</pre><p>
|
14
|
+
We also need an extra xmlNodePtr:
|
15
|
+
</p><pre class="programlisting">
|
16
|
+
xmlNodePtr newnode;
|
17
|
+
</pre><p>
|
18
|
+
</p><p>
|
19
|
+
The rest of <tt class="function">parseDoc</tt> is the same as before until we
|
20
|
+
check to see if our root element is <tt class="sgmltag-element">story</tt>. If it is,
|
21
|
+
then we know we are at the right spot to add our element:
|
22
|
+
|
23
|
+
</p><pre class="programlisting">
|
24
|
+
<a name="addreferencenode"></a><img src="images/callouts/1.png" alt="1" border="0"> newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
|
25
|
+
<a name="addattributenode"></a><img src="images/callouts/2.png" alt="2" border="0"> newattr = xmlNewProp (newnode, "uri", uri);
|
26
|
+
</pre><p>
|
27
|
+
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#addreferencenode"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First we add a new node at the location of the current node
|
28
|
+
pointer, <tt class="varname">cur.</tt> using the <a href="http://xmlsoft.org/html/libxml-tree.html#XMLNEWTEXTCHILD" target="_top">xmlNewTextChild</a> function.</p></td></tr></table></div><p>
|
29
|
+
</p><p>Once the node is added, the file is written to disk just as in the
|
30
|
+
previous example in which we added an element with text content.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing element content�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Retrieving Attributes</td></tr></table></div></body></html>
|