rsvg2 1.2.1-x86-mingw32 → 1.2.2-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/1.9/rsvg2.so +0 -0
- data/lib/2.0/rsvg2.so +0 -0
- metadata +332 -508
- data/lib/1.8/rsvg2.so +0 -0
- data/vendor/local/manifest/libxml2-dev_2.7.7-1_win32.mft +0 -267
- data/vendor/local/manifest/libxml2_2.7.7-1_win32.mft +0 -2
- data/vendor/local/share/doc/libxml2-2.7.7/Copyright +0 -27
- data/vendor/local/share/doc/libxml2-2.7.7/examples/testHTML.c +0 -880
- data/vendor/local/share/doc/libxml2-2.7.7/examples/testSAX.c +0 -1198
- data/vendor/local/share/doc/libxml2-2.7.7/examples/testXPath.c +0 -227
- data/vendor/local/share/doc/libxml2-2.7.7/examples/xmllint.c +0 -3722
- data/vendor/local/share/doc/libxml2-2.7.7/html/DOM.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/FAQ.html +0 -282
- data/vendor/local/share/doc/libxml2-2.7.7/html/Libxml2-Logo-180x168.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/Libxml2-Logo-90x34.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/encoding.html +0 -206
- data/vendor/local/share/doc/libxml2-2.7.7/html/examples.xml +0 -751
- data/vendor/local/share/doc/libxml2-2.7.7/html/examples.xsl +0 -174
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/book1.html +0 -13
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/index.html +0 -13
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/left.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-DOCBparser.html +0 -51
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-HTMLparser.html +0 -182
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-HTMLtree.html +0 -73
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-SAX.html +0 -125
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-SAX2.html +0 -128
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-c14n.html +0 -38
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-catalog.html +0 -142
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-chvalid.html +0 -72
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-debugXML.html +0 -120
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-dict.html +0 -49
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-encoding.html +0 -118
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-entities.html +0 -79
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-globals.html +0 -152
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-hash.html +0 -116
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-lib.html +0 -13
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-list.html +0 -120
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-nanoftp.html +0 -92
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-nanohttp.html +0 -65
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-parser.html +0 -555
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-parserInternals.html +0 -319
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-pattern.html +0 -76
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-relaxng.html +0 -162
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-schemasInternals.html +0 -373
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-schematron.html +0 -81
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-threads.html +0 -72
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-tree.html +0 -958
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-uri.html +0 -73
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-valid.html +0 -289
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xinclude.html +0 -59
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xlink.html +0 -82
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlIO.html +0 -206
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlautomata.html +0 -85
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlerror.html +0 -862
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlexports.html +0 -20
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlmemory.html +0 -107
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlmodule.html +0 -38
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlreader.html +0 -327
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlregexp.html +0 -143
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlsave.html +0 -59
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlschemas.html +0 -173
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlschemastypes.html +0 -123
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlstring.html +0 -108
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlunicode.html +0 -512
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlversion.html +0 -60
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xmlwriter.html +0 -258
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xpath.html +0 -307
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xpathInternals.html +0 -394
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/libxml-xpointer.html +0 -83
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/right.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/html/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/io1.c +0 -166
- data/vendor/local/share/doc/libxml2-2.7.7/html/io1.res +0 -5
- data/vendor/local/share/doc/libxml2-2.7.7/html/io2.c +0 -58
- data/vendor/local/share/doc/libxml2-2.7.7/html/io2.res +0 -2
- data/vendor/local/share/doc/libxml2-2.7.7/html/libxml.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/parse1.c +0 -56
- data/vendor/local/share/doc/libxml2-2.7.7/html/parse2.c +0 -72
- data/vendor/local/share/doc/libxml2-2.7.7/html/parse3.c +0 -60
- data/vendor/local/share/doc/libxml2-2.7.7/html/parse4.c +0 -143
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader1.c +0 -107
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader1.res +0 -14
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader2.c +0 -122
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader3.c +0 -120
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader3.res +0 -13
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader4.c +0 -122
- data/vendor/local/share/doc/libxml2-2.7.7/html/reader4.res +0 -3
- data/vendor/local/share/doc/libxml2-2.7.7/html/redhat.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/smallfootonly.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/structure.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/test1.xml +0 -1
- data/vendor/local/share/doc/libxml2-2.7.7/html/test2.xml +0 -13
- data/vendor/local/share/doc/libxml2-2.7.7/html/test3.xml +0 -39
- data/vendor/local/share/doc/libxml2-2.7.7/html/testWriter.c +0 -1198
- data/vendor/local/share/doc/libxml2-2.7.7/html/tree1.c +0 -94
- data/vendor/local/share/doc/libxml2-2.7.7/html/tree1.res +0 -4
- data/vendor/local/share/doc/libxml2-2.7.7/html/tree2.c +0 -118
- data/vendor/local/share/doc/libxml2-2.7.7/html/tree2.res +0 -18
- data/vendor/local/share/doc/libxml2-2.7.7/html/tst.xml +0 -7
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apa.html +0 -8
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apb.html +0 -14
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apc.html +0 -82
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apd.html +0 -76
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ape.html +0 -78
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apf.html +0 -67
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/apg.html +0 -75
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/aph.html +0 -76
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/api.html +0 -4
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s02.html +0 -14
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s03.html +0 -47
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s04.html +0 -54
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s05.html +0 -55
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s06.html +0 -35
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s07.html +0 -30
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s08.html +0 -38
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ar01s09.html +0 -63
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/1.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/10.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/2.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/3.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/4.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/5.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/6.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/7.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/8.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/callouts/9.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/caution.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/draft.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/important.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/next.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/note.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/prev.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/tip.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/toc-blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/toc-minus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/toc-plus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/images/warning.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includeaddattribute.c +0 -64
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includeaddkeyword.c +0 -75
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includeconvert.c +0 -73
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includegetattribute.c +0 -72
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includekeyword.c +0 -79
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/includexpath.c +0 -74
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/index.html +0 -14
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/ix01.html +0 -1
- data/vendor/local/share/doc/libxml2-2.7.7/html/tutorial/xmltutorial.pdf +0 -1336
- data/vendor/local/share/doc/libxml2-2.7.7/html/w3c.png +0 -0
- data/vendor/local/share/doc/libxml2-2.7.7/html/writer.xml +0 -2
- data/vendor/local/share/doc/libxml2-2.7.7/html/xml.html +0 -5344
- data/vendor/local/share/doc/libxml2-2.7.7/html/xpath1.c +0 -250
- data/vendor/local/share/doc/libxml2-2.7.7/html/xpath1.res +0 -5
- data/vendor/local/share/doc/libxml2-2.7.7/html/xpath2.c +0 -190
- data/vendor/local/share/doc/libxml2-2.7.7/html/xpath2.res +0 -30
- data/vendor/local/src/tml/packaging/libxml2_2.7.7-1_win32.log +0 -1244
- data/vendor/local/src/tml/packaging/libxml2_2.7.7-1_win32.sh +0 -66
@@ -1,38 +0,0 @@
|
|
1
|
-
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retrieving Attributes</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="ar01s07.html" title="Writing Attribute"><link rel="next" href="ar01s09.html" title="Encoding Conversion"></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 Attributes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s07.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s09.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="xmltutorialattribute"></a>Retrieving Attributes</h2></div></div><div></div></div><p><a class="indexterm" name="id2587236"></a>
|
2
|
-
Retrieving the value of an attribute is similar to the previous
|
3
|
-
example in which we retrieved a node's text contents. In this case we'll
|
4
|
-
extract the value of the <span class="acronym">URI</span> we added in the previous
|
5
|
-
section. Full code: <a href="apg.html" title="G.�Code for Retrieving Attribute Value Example">Appendix�G, <i>Code for Retrieving Attribute Value Example</i></a>.</p><p>
|
6
|
-
The initial steps for this example are similar to the previous ones: parse
|
7
|
-
the doc, find the element you are interested in, then enter a function to
|
8
|
-
carry out the specific task required. In this case, we call
|
9
|
-
<tt class="function">getReference</tt>:
|
10
|
-
</p><pre class="programlisting">
|
11
|
-
void
|
12
|
-
getReference (xmlDocPtr doc, xmlNodePtr cur) {
|
13
|
-
|
14
|
-
xmlChar *uri;
|
15
|
-
cur = cur->xmlChildrenNode;
|
16
|
-
while (cur != NULL) {
|
17
|
-
if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
|
18
|
-
<a name="getattributevalue"></a><img src="images/callouts/1.png" alt="1" border="0"> uri = xmlGetProp(cur, "uri");
|
19
|
-
printf("uri: %s\n", uri);
|
20
|
-
xmlFree(uri);
|
21
|
-
}
|
22
|
-
cur = cur->next;
|
23
|
-
}
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
</pre><p>
|
27
|
-
|
28
|
-
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#getattributevalue"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>
|
29
|
-
The key function is <tt class="function"><a href="http://xmlsoft.org/html/libxml-tree.html#XMLGETPROP" target="_top">xmlGetProp</a></tt>, which returns an
|
30
|
-
<tt class="varname">xmlChar</tt> containing the attribute's value. In this case,
|
31
|
-
we just print it out.
|
32
|
-
</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>
|
33
|
-
If you are using a <span class="acronym">DTD</span> that declares a fixed or
|
34
|
-
default value for the attribute, this function will retrieve it.
|
35
|
-
</p></td></tr></table></div><p>
|
36
|
-
</p></td></tr></table></div><p>
|
37
|
-
|
38
|
-
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s07.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="ar01s09.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing Attribute�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Encoding Conversion</td></tr></table></div></body></html>
|
@@ -1,63 +0,0 @@
|
|
1
|
-
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Encoding Conversion</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="ar01s08.html" title="Retrieving Attributes"><link rel="next" href="apa.html" title="A.�Compilation"></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">Encoding Conversion</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s08.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="apa.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="xmltutorialconvert"></a>Encoding Conversion</h2></div></div><div></div></div><p><a class="indexterm" name="id2587348"></a>
|
2
|
-
Data encoding compatibility problems are one of the most common
|
3
|
-
difficulties encountered by programmers new to <span class="acronym">XML</span> in
|
4
|
-
general and <span class="application">libxml</span> in particular. Thinking
|
5
|
-
through the design of your application in light of this issue will help
|
6
|
-
avoid difficulties later. Internally, <span class="application">libxml</span>
|
7
|
-
stores and manipulates data in the UTF-8 format. Data used by your program
|
8
|
-
in other formats, such as the commonly used ISO-8859-1 encoding, must be
|
9
|
-
converted to UTF-8 before passing it to <span class="application">libxml</span>
|
10
|
-
functions. If you want your program's output in an encoding other than
|
11
|
-
UTF-8, you also must convert it.</p><p><span class="application">Libxml</span> uses
|
12
|
-
<span class="application">iconv</span> if it is available to convert
|
13
|
-
data. Without <span class="application">iconv</span>, only UTF-8, UTF-16 and
|
14
|
-
ISO-8859-1 can be used as external formats. With
|
15
|
-
<span class="application">iconv</span>, any format can be used provided
|
16
|
-
<span class="application">iconv</span> is able to convert it to and from
|
17
|
-
UTF-8. Currently <span class="application">iconv</span> supports about 150
|
18
|
-
different character formats with ability to convert from any to any. While
|
19
|
-
the actual number of supported formats varies between implementations, every
|
20
|
-
<span class="application">iconv</span> implementation is almost guaranteed to
|
21
|
-
support every format anyone has ever heard of.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td colspan="2" align="left" valign="top"><p>A common mistake is to use different formats for the internal data
|
22
|
-
in different parts of one's code. The most common case is an application
|
23
|
-
that assumes ISO-8859-1 to be the internal data format, combined with
|
24
|
-
<span class="application">libxml</span>, which assumes UTF-8 to be the
|
25
|
-
internal data format. The result is an application that treats internal
|
26
|
-
data differently, depending on which code section is executing. The one or
|
27
|
-
the other part of code will then, naturally, misinterpret the data.
|
28
|
-
</p></td></tr></table></div><p>This example constructs a simple document, then adds content provided
|
29
|
-
at the command line to the document's root element and outputs the results
|
30
|
-
to <tt class="filename">stdout</tt> in the proper encoding. For this example, we
|
31
|
-
use ISO-8859-1 encoding. The encoding of the string input at the command
|
32
|
-
line is converted from ISO-8859-1 to UTF-8. Full code: <a href="aph.html" title="H.�Code for Encoding Conversion Example">Appendix�H, <i>Code for Encoding Conversion Example</i></a></p><p>The conversion, encapsulated in the example code in the
|
33
|
-
<tt class="function">convert</tt> function, uses
|
34
|
-
<span class="application">libxml's</span>
|
35
|
-
<tt class="function">xmlFindCharEncodingHandler</tt> function:
|
36
|
-
</p><pre class="programlisting">
|
37
|
-
<a name="handlerdatatype"></a><img src="images/callouts/1.png" alt="1" border="0">xmlCharEncodingHandlerPtr handler;
|
38
|
-
<a name="calcsize"></a><img src="images/callouts/2.png" alt="2" border="0">size = (int)strlen(in)+1;
|
39
|
-
out_size = size*2-1;
|
40
|
-
out = malloc((size_t)out_size);
|
41
|
-
|
42
|
-
…
|
43
|
-
<a name="findhandlerfunction"></a><img src="images/callouts/3.png" alt="3" border="0">handler = xmlFindCharEncodingHandler(encoding);
|
44
|
-
…
|
45
|
-
<a name="callconversionfunction"></a><img src="images/callouts/4.png" alt="4" border="0">handler->input(out, &out_size, in, &temp);
|
46
|
-
…
|
47
|
-
<a name="outputencoding"></a><img src="images/callouts/5.png" alt="5" border="0">xmlSaveFormatFileEnc("-", doc, encoding, 1);
|
48
|
-
</pre><p>
|
49
|
-
</p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#handlerdatatype"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p><tt class="varname">handler</tt> is declared as a pointer to an
|
50
|
-
<tt class="function">xmlCharEncodingHandler</tt> function.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#calcsize"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>The <tt class="function">xmlCharEncodingHandler</tt> function needs
|
51
|
-
to be given the size of the input and output strings, which are
|
52
|
-
calculated here for strings <tt class="varname">in</tt> and
|
53
|
-
<tt class="varname">out</tt>.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#findhandlerfunction"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p><tt class="function">xmlFindCharEncodingHandler</tt> takes as its
|
54
|
-
argument the data's initial encoding and searches
|
55
|
-
<span class="application">libxml's</span> built-in set of conversion
|
56
|
-
handlers, returning a pointer to the function or NULL if none is
|
57
|
-
found.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#callconversionfunction"><img src="images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>The conversion function identified by <tt class="varname">handler</tt>
|
58
|
-
requires as its arguments pointers to the input and output strings,
|
59
|
-
along with the length of each. The lengths must be determined
|
60
|
-
separately by the application.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#outputencoding"><img src="images/callouts/5.png" alt="5" border="0"></a> </td><td valign="top" align="left"><p>To output in a specified encoding rather than UTF-8, we use
|
61
|
-
<tt class="function">xmlSaveFormatFileEnc</tt>, specifying the
|
62
|
-
encoding.</p></td></tr></table></div><p>
|
63
|
-
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s08.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="apa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Retrieving Attributes�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�A.�Compilation</td></tr></table></div></body></html>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,64 +0,0 @@
|
|
1
|
-
<![CDATA[
|
2
|
-
#include <stdio.h>
|
3
|
-
#include <string.h>
|
4
|
-
#include <stdlib.h>
|
5
|
-
#include <libxml/xmlmemory.h>
|
6
|
-
#include <libxml/parser.h>
|
7
|
-
|
8
|
-
|
9
|
-
xmlDocPtr
|
10
|
-
parseDoc(char *docname, char *uri) {
|
11
|
-
|
12
|
-
xmlDocPtr doc;
|
13
|
-
xmlNodePtr cur;
|
14
|
-
xmlNodePtr newnode;
|
15
|
-
xmlAttrPtr newattr;
|
16
|
-
|
17
|
-
doc = xmlParseFile(docname);
|
18
|
-
|
19
|
-
if (doc == NULL ) {
|
20
|
-
fprintf(stderr,"Document not parsed successfully. \n");
|
21
|
-
return (NULL);
|
22
|
-
}
|
23
|
-
|
24
|
-
cur = xmlDocGetRootElement(doc);
|
25
|
-
|
26
|
-
if (cur == NULL) {
|
27
|
-
fprintf(stderr,"empty document\n");
|
28
|
-
xmlFreeDoc(doc);
|
29
|
-
return (NULL);
|
30
|
-
}
|
31
|
-
|
32
|
-
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
33
|
-
fprintf(stderr,"document of the wrong type, root node != story");
|
34
|
-
xmlFreeDoc(doc);
|
35
|
-
return (NULL);
|
36
|
-
}
|
37
|
-
|
38
|
-
newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
|
39
|
-
newattr = xmlNewProp (newnode, "uri", uri);
|
40
|
-
return(doc);
|
41
|
-
}
|
42
|
-
|
43
|
-
int
|
44
|
-
main(int argc, char **argv) {
|
45
|
-
|
46
|
-
char *docname;
|
47
|
-
char *uri;
|
48
|
-
xmlDocPtr doc;
|
49
|
-
|
50
|
-
if (argc <= 2) {
|
51
|
-
printf("Usage: %s docname, uri\n", argv[0]);
|
52
|
-
return(0);
|
53
|
-
}
|
54
|
-
|
55
|
-
docname = argv[1];
|
56
|
-
uri = argv[2];
|
57
|
-
doc = parseDoc (docname, uri);
|
58
|
-
if (doc != NULL) {
|
59
|
-
xmlSaveFormatFile (docname, doc, 1);
|
60
|
-
xmlFreeDoc(doc);
|
61
|
-
}
|
62
|
-
return (1);
|
63
|
-
}
|
64
|
-
]]>
|
@@ -1,75 +0,0 @@
|
|
1
|
-
<![CDATA[
|
2
|
-
#include <stdio.h>
|
3
|
-
#include <string.h>
|
4
|
-
#include <stdlib.h>
|
5
|
-
#include <libxml/xmlmemory.h>
|
6
|
-
#include <libxml/parser.h>
|
7
|
-
|
8
|
-
void
|
9
|
-
parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
|
10
|
-
|
11
|
-
xmlNewTextChild (cur, NULL, "keyword", keyword);
|
12
|
-
return;
|
13
|
-
}
|
14
|
-
|
15
|
-
xmlDocPtr
|
16
|
-
parseDoc(char *docname, char *keyword) {
|
17
|
-
|
18
|
-
xmlDocPtr doc;
|
19
|
-
xmlNodePtr cur;
|
20
|
-
|
21
|
-
doc = xmlParseFile(docname);
|
22
|
-
|
23
|
-
if (doc == NULL ) {
|
24
|
-
fprintf(stderr,"Document not parsed successfully. \n");
|
25
|
-
return (NULL);
|
26
|
-
}
|
27
|
-
|
28
|
-
cur = xmlDocGetRootElement(doc);
|
29
|
-
|
30
|
-
if (cur == NULL) {
|
31
|
-
fprintf(stderr,"empty document\n");
|
32
|
-
xmlFreeDoc(doc);
|
33
|
-
return (NULL);
|
34
|
-
}
|
35
|
-
|
36
|
-
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
37
|
-
fprintf(stderr,"document of the wrong type, root node != story");
|
38
|
-
xmlFreeDoc(doc);
|
39
|
-
return (NULL);
|
40
|
-
}
|
41
|
-
|
42
|
-
cur = cur->xmlChildrenNode;
|
43
|
-
while (cur != NULL) {
|
44
|
-
if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
|
45
|
-
parseStory (doc, cur, keyword);
|
46
|
-
}
|
47
|
-
|
48
|
-
cur = cur->next;
|
49
|
-
}
|
50
|
-
return(doc);
|
51
|
-
}
|
52
|
-
|
53
|
-
int
|
54
|
-
main(int argc, char **argv) {
|
55
|
-
|
56
|
-
char *docname;
|
57
|
-
char *keyword;
|
58
|
-
xmlDocPtr doc;
|
59
|
-
|
60
|
-
if (argc <= 2) {
|
61
|
-
printf("Usage: %s docname, keyword\n", argv[0]);
|
62
|
-
return(0);
|
63
|
-
}
|
64
|
-
|
65
|
-
docname = argv[1];
|
66
|
-
keyword = argv[2];
|
67
|
-
doc = parseDoc (docname, keyword);
|
68
|
-
if (doc != NULL) {
|
69
|
-
xmlSaveFormatFile (docname, doc, 0);
|
70
|
-
xmlFreeDoc(doc);
|
71
|
-
}
|
72
|
-
|
73
|
-
return (1);
|
74
|
-
}
|
75
|
-
]]>
|
@@ -1,73 +0,0 @@
|
|
1
|
-
<![CDATA[
|
2
|
-
#include <string.h>
|
3
|
-
#include <libxml/parser.h>
|
4
|
-
|
5
|
-
|
6
|
-
unsigned char*
|
7
|
-
convert (unsigned char *in, char *encoding)
|
8
|
-
{
|
9
|
-
unsigned char *out;
|
10
|
-
int ret,size,out_size,temp;
|
11
|
-
xmlCharEncodingHandlerPtr handler;
|
12
|
-
|
13
|
-
size = (int)strlen(in)+1;
|
14
|
-
out_size = size*2-1;
|
15
|
-
out = malloc((size_t)out_size);
|
16
|
-
|
17
|
-
if (out) {
|
18
|
-
handler = xmlFindCharEncodingHandler(encoding);
|
19
|
-
|
20
|
-
if (!handler) {
|
21
|
-
free(out);
|
22
|
-
out = NULL;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
if (out) {
|
26
|
-
temp=size-1;
|
27
|
-
ret = handler->input(out, &out_size, in, &temp);
|
28
|
-
if (ret || temp-size+1) {
|
29
|
-
if (ret) {
|
30
|
-
printf("conversion wasn't successful.\n");
|
31
|
-
} else {
|
32
|
-
printf("conversion wasn't successful. converted: %i octets.\n",temp);
|
33
|
-
}
|
34
|
-
free(out);
|
35
|
-
out = NULL;
|
36
|
-
} else {
|
37
|
-
out = realloc(out,out_size+1);
|
38
|
-
out[out_size]=0; /*null terminating out*/
|
39
|
-
|
40
|
-
}
|
41
|
-
} else {
|
42
|
-
printf("no mem\n");
|
43
|
-
}
|
44
|
-
return (out);
|
45
|
-
}
|
46
|
-
|
47
|
-
|
48
|
-
int
|
49
|
-
main(int argc, char **argv) {
|
50
|
-
|
51
|
-
unsigned char *content, *out;
|
52
|
-
xmlDocPtr doc;
|
53
|
-
xmlNodePtr rootnode;
|
54
|
-
char *encoding = "ISO-8859-1";
|
55
|
-
|
56
|
-
|
57
|
-
if (argc <= 1) {
|
58
|
-
printf("Usage: %s content\n", argv[0]);
|
59
|
-
return(0);
|
60
|
-
}
|
61
|
-
|
62
|
-
content = argv[1];
|
63
|
-
|
64
|
-
out = convert(content, encoding);
|
65
|
-
|
66
|
-
doc = xmlNewDoc ("1.0");
|
67
|
-
rootnode = xmlNewDocNode(doc, NULL, (const xmlChar*)"root", out);
|
68
|
-
xmlDocSetRootElement(doc, rootnode);
|
69
|
-
|
70
|
-
xmlSaveFormatFileEnc("-", doc, encoding, 1);
|
71
|
-
return (1);
|
72
|
-
}
|
73
|
-
]]>
|
@@ -1,72 +0,0 @@
|
|
1
|
-
<![CDATA[
|
2
|
-
#include <stdio.h>
|
3
|
-
#include <string.h>
|
4
|
-
#include <stdlib.h>
|
5
|
-
#include <libxml/xmlmemory.h>
|
6
|
-
#include <libxml/parser.h>
|
7
|
-
|
8
|
-
void
|
9
|
-
getReference (xmlDocPtr doc, xmlNodePtr cur) {
|
10
|
-
|
11
|
-
xmlChar *uri;
|
12
|
-
cur = cur->xmlChildrenNode;
|
13
|
-
while (cur != NULL) {
|
14
|
-
if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
|
15
|
-
uri = xmlGetProp(cur, "uri");
|
16
|
-
printf("uri: %s\n", uri);
|
17
|
-
xmlFree(uri);
|
18
|
-
}
|
19
|
-
cur = cur->next;
|
20
|
-
}
|
21
|
-
return;
|
22
|
-
}
|
23
|
-
|
24
|
-
|
25
|
-
void
|
26
|
-
parseDoc(char *docname) {
|
27
|
-
|
28
|
-
xmlDocPtr doc;
|
29
|
-
xmlNodePtr cur;
|
30
|
-
|
31
|
-
doc = xmlParseFile(docname);
|
32
|
-
|
33
|
-
if (doc == NULL ) {
|
34
|
-
fprintf(stderr,"Document not parsed successfully. \n");
|
35
|
-
return;
|
36
|
-
}
|
37
|
-
|
38
|
-
cur = xmlDocGetRootElement(doc);
|
39
|
-
|
40
|
-
if (cur == NULL) {
|
41
|
-
fprintf(stderr,"empty document\n");
|
42
|
-
xmlFreeDoc(doc);
|
43
|
-
return;
|
44
|
-
}
|
45
|
-
|
46
|
-
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
47
|
-
fprintf(stderr,"document of the wrong type, root node != story");
|
48
|
-
xmlFreeDoc(doc);
|
49
|
-
return;
|
50
|
-
}
|
51
|
-
|
52
|
-
getReference (doc, cur);
|
53
|
-
xmlFreeDoc(doc);
|
54
|
-
return;
|
55
|
-
}
|
56
|
-
|
57
|
-
int
|
58
|
-
main(int argc, char **argv) {
|
59
|
-
|
60
|
-
char *docname;
|
61
|
-
|
62
|
-
if (argc <= 1) {
|
63
|
-
printf("Usage: %s docname\n", argv[0]);
|
64
|
-
return(0);
|
65
|
-
}
|
66
|
-
|
67
|
-
docname = argv[1];
|
68
|
-
parseDoc (docname);
|
69
|
-
|
70
|
-
return (1);
|
71
|
-
}
|
72
|
-
]]>
|
@@ -1,79 +0,0 @@
|
|
1
|
-
<![CDATA[
|
2
|
-
#include <stdio.h>
|
3
|
-
#include <string.h>
|
4
|
-
#include <stdlib.h>
|
5
|
-
#include <libxml/xmlmemory.h>
|
6
|
-
#include <libxml/parser.h>
|
7
|
-
|
8
|
-
void
|
9
|
-
parseStory (xmlDocPtr doc, xmlNodePtr cur) {
|
10
|
-
|
11
|
-
xmlChar *key;
|
12
|
-
cur = cur->xmlChildrenNode;
|
13
|
-
while (cur != NULL) {
|
14
|
-
if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {
|
15
|
-
key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
|
16
|
-
printf("keyword: %s\n", key);
|
17
|
-
xmlFree(key);
|
18
|
-
}
|
19
|
-
cur = cur->next;
|
20
|
-
}
|
21
|
-
return;
|
22
|
-
}
|
23
|
-
|
24
|
-
static void
|
25
|
-
parseDoc(char *docname) {
|
26
|
-
|
27
|
-
xmlDocPtr doc;
|
28
|
-
xmlNodePtr cur;
|
29
|
-
|
30
|
-
doc = xmlParseFile(docname);
|
31
|
-
|
32
|
-
if (doc == NULL ) {
|
33
|
-
fprintf(stderr,"Document not parsed successfully. \n");
|
34
|
-
return;
|
35
|
-
}
|
36
|
-
|
37
|
-
cur = xmlDocGetRootElement(doc);
|
38
|
-
|
39
|
-
if (cur == NULL) {
|
40
|
-
fprintf(stderr,"empty document\n");
|
41
|
-
xmlFreeDoc(doc);
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
|
45
|
-
if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
|
46
|
-
fprintf(stderr,"document of the wrong type, root node != story");
|
47
|
-
xmlFreeDoc(doc);
|
48
|
-
return;
|
49
|
-
}
|
50
|
-
|
51
|
-
cur = cur->xmlChildrenNode;
|
52
|
-
while (cur != NULL) {
|
53
|
-
if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
|
54
|
-
parseStory (doc, cur);
|
55
|
-
}
|
56
|
-
|
57
|
-
cur = cur->next;
|
58
|
-
}
|
59
|
-
|
60
|
-
xmlFreeDoc(doc);
|
61
|
-
return;
|
62
|
-
}
|
63
|
-
|
64
|
-
int
|
65
|
-
main(int argc, char **argv) {
|
66
|
-
|
67
|
-
char *docname;
|
68
|
-
|
69
|
-
if (argc <= 1) {
|
70
|
-
printf("Usage: %s docname\n", argv[0]);
|
71
|
-
return(0);
|
72
|
-
}
|
73
|
-
|
74
|
-
docname = argv[1];
|
75
|
-
parseDoc (docname);
|
76
|
-
|
77
|
-
return (1);
|
78
|
-
}
|
79
|
-
]]>
|