0
0
mirror of https://github.com/zeux/pugixml.git synced 2024-12-27 13:33:17 +08:00

Merged 0.34 in trunk (revisions 69:84)

git-svn-id: http://pugixml.googlecode.com/svn/trunk@85 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2007-10-31 17:46:35 +00:00
parent faf69388f0
commit 2c06637bf8
85 changed files with 4192 additions and 2851 deletions

View File

@ -30,7 +30,7 @@
<tr><td class="indexkey"><a class="el" href="classpugi_1_1xpath__node__set.html">pugi::xpath_node_set</a></td><td class="indexvalue">Not necessarily ordered constant collection of XPath nodes </td></tr>
<tr><td class="indexkey"><a class="el" href="classpugi_1_1xpath__query.html">pugi::xpath_query</a></td><td class="indexvalue">A class that holds compiled XPath query and allows to evaluate query result </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -45,7 +45,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__attribute.html#a555fccff52247e39f823d564a31e4d8">xml_attribute</a>()</td><td><a class="el" href="classpugi_1_1xml__attribute.html">pugi::xml_attribute</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><b>xml_attribute_iterator</b> (defined in <a class="el" href="classpugi_1_1xml__attribute.html">pugi::xml_attribute</a>)</td><td><a class="el" href="classpugi_1_1xml__attribute.html">pugi::xml_attribute</a></td><td><code> [friend]</code></td></tr>
<tr bgcolor="#f0f0f0"><td><b>xml_node</b> (defined in <a class="el" href="classpugi_1_1xml__attribute.html">pugi::xml_attribute</a>)</td><td><a class="el" href="classpugi_1_1xml__attribute.html">pugi::xml_attribute</a></td><td><code> [friend]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -874,7 +874,7 @@ Get attribute value.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

After

Width:  |  Height:  |  Size: 875 B

View File

@ -30,7 +30,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__attribute__iterator.html#4595648e3aa06a3209f200c69805ed47">xml_attribute_iterator</a>(const xml_attribute &amp;node)</td><td><a class="el" href="classpugi_1_1xml__attribute__iterator.html">pugi::xml_attribute_iterator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__attribute__iterator.html#c99270b894dd2faeab9fc6eb3832dc94">xml_attribute_iterator</a>(xml_attribute_struct *ref, xml_attribute_struct *prev)</td><td><a class="el" href="classpugi_1_1xml__attribute__iterator.html">pugi::xml_attribute_iterator</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><b>xml_node</b> (defined in <a class="el" href="classpugi_1_1xml__attribute__iterator.html">pugi::xml_attribute_iterator</a>)</td><td><a class="el" href="classpugi_1_1xml__attribute__iterator.html">pugi::xml_attribute_iterator</a></td><td><code> [friend]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -22,7 +22,7 @@
<h1>pugi::xml_attribute_iterator Class Reference</h1><!-- doxytag: class="pugi::xml_attribute_iterator" --><!-- doxytag: inherits="std::iterator" -->Inheritance diagram for pugi::xml_attribute_iterator:<p><center><img src="classpugi_1_1xml__attribute__iterator__inherit__graph.png" border="0" usemap="#pugi_1_1xml__attribute__iterator__inherit__map" alt="Inheritance graph"></center>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for pugi::xml_attribute_iterator:<p><center><img src="classpugi_1_1xml__attribute__iterator__coll__graph.png" border="0" usemap="#pugi_1_1xml__attribute__iterator__coll__map" alt="Collaboration graph"></center>
<map name="pugi_1_1xml__attribute__iterator__coll__map">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="394,98,528,125" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="392,96,525,123" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xml__attribute__iterator-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Attribute iterator.
@ -407,7 +407,7 @@ Post-decrement operator.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__attribute.html 394,98 528,125
rect $classpugi_1_1xml__attribute.html 392,96 525,123

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -96,7 +96,7 @@
<tr bgcolor="#f0f0f0"><td><b>xml_node</b>(xml_node_struct *p) (defined in <a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a>)</td><td><a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a></td><td><code> [explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__node.html#1db6c67c97cddd74f59d872057987432">xml_node</a>()</td><td><a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__document.html#16c086e679286271b0ccd4541d1c1290">~xml_document</a>()</td><td><a class="el" href="classpugi_1_1xml__document.html">pugi::xml_document</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -21,11 +21,11 @@
<a class="el" href="namespacepugi.html">pugi</a>::<a class="el" href="classpugi_1_1xml__document.html">xml_document</a></div>
<h1>pugi::xml_document Class Reference</h1><!-- doxytag: class="pugi::xml_document" --><!-- doxytag: inherits="pugi::xml_node" -->Inheritance diagram for pugi::xml_document:<p><center><img src="classpugi_1_1xml__document__inherit__graph.png" border="0" usemap="#pugi_1_1xml__document__inherit__map" alt="Inheritance graph"></center>
<map name="pugi_1_1xml__document__inherit__map">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="24,7,136,34" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="20,5,132,32" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for pugi::xml_document:<p><center><img src="classpugi_1_1xml__document__coll__graph.png" border="0" usemap="#pugi_1_1xml__document__coll__map" alt="Collaboration graph"></center>
<map name="pugi_1_1xml__document__coll__map">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="17,98,129,125" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="15,96,127,123" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xml__document-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Document class (DOM tree root).
@ -358,7 +358,7 @@ Save XML to file.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__node.html 17,98 129,125
rect $classpugi_1_1xml__node.html 15,96 127,123

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__node.html 24,7 136,34
rect $classpugi_1_1xml__node.html 20,5 132,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 704 B

View File

@ -88,7 +88,7 @@
<tr bgcolor="#f0f0f0"><td><b>xml_node</b>(xml_node_struct *p) (defined in <a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a>)</td><td><a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a></td><td><code> [explicit, protected]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__node.html#1db6c67c97cddd74f59d872057987432">xml_node</a>()</td><td><a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a></td><td></td></tr>
<tr bgcolor="#f0f0f0"><td><b>xml_node_iterator</b> (defined in <a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a>)</td><td><a class="el" href="classpugi_1_1xml__node.html">pugi::xml_node</a></td><td><code> [friend]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -21,7 +21,7 @@
<a class="el" href="namespacepugi.html">pugi</a>::<a class="el" href="classpugi_1_1xml__node.html">xml_node</a></div>
<h1>pugi::xml_node Class Reference</h1><!-- doxytag: class="pugi::xml_node" -->Inheritance diagram for pugi::xml_node:<p><center><img src="classpugi_1_1xml__node__inherit__graph.png" border="0" usemap="#pugi_1_1xml__node__inherit__map" alt="Inheritance graph"></center>
<map name="pugi_1_1xml__node__inherit__map">
<area href="classpugi_1_1xml__document.html" shape="rect" coords="8,82,152,109" alt="">
<area href="classpugi_1_1xml__document.html" shape="rect" coords="5,80,147,107" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for pugi::xml_node:<p><center><img src="classpugi_1_1xml__node__coll__graph.png" border="0" usemap="#pugi_1_1xml__node__coll__map" alt="Collaboration graph"></center>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xml__node-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
@ -2466,7 +2466,7 @@ Print subtree to stream.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 756 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__document.html 8,82 152,109
rect $classpugi_1_1xml__document.html 5,80 147,107

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 706 B

View File

@ -30,7 +30,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__node__iterator.html#09538d658aef0ba20cbe050dff1c3a81">xml_node_iterator</a>()</td><td><a class="el" href="classpugi_1_1xml__node__iterator.html">pugi::xml_node_iterator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__node__iterator.html#874c832b41aaaff159ef2c36cdcb705c">xml_node_iterator</a>(const xml_node &amp;node)</td><td><a class="el" href="classpugi_1_1xml__node__iterator.html">pugi::xml_node_iterator</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__node__iterator.html#b16f30b8b0b96e750792c69e8e1fbeb2">xml_node_iterator</a>(xml_node_struct *ref, xml_node_struct *prev)</td><td><a class="el" href="classpugi_1_1xml__node__iterator.html">pugi::xml_node_iterator</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -22,7 +22,7 @@
<h1>pugi::xml_node_iterator Class Reference</h1><!-- doxytag: class="pugi::xml_node_iterator" --><!-- doxytag: inherits="std::iterator" -->Inheritance diagram for pugi::xml_node_iterator:<p><center><img src="classpugi_1_1xml__node__iterator__inherit__graph.png" border="0" usemap="#pugi_1_1xml__node__iterator__inherit__map" alt="Inheritance graph"></center>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for pugi::xml_node_iterator:<p><center><img src="classpugi_1_1xml__node__iterator__coll__graph.png" border="0" usemap="#pugi_1_1xml__node__iterator__coll__map" alt="Collaboration graph"></center>
<map name="pugi_1_1xml__node__iterator__coll__map">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="375,98,487,125" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="373,96,485,123" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xml__node__iterator-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Child node iterator.
@ -407,7 +407,7 @@ Post-decrement operator.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:43 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__node.html 375,98 487,125
rect $classpugi_1_1xml__node.html 373,96 485,123

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -25,7 +25,7 @@
<tr bgcolor="#f0f0f0"><td><b>xml_node</b> (defined in <a class="el" href="classpugi_1_1xml__tree__walker.html">pugi::xml_tree_walker</a>)</td><td><a class="el" href="classpugi_1_1xml__tree__walker.html">pugi::xml_tree_walker</a></td><td><code> [friend]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__tree__walker.html#93c03157cff8f8a0ead30c2d256d061b">xml_tree_walker</a>()</td><td><a class="el" href="classpugi_1_1xml__tree__walker.html">pugi::xml_tree_walker</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xml__tree__walker.html#aa0d4eb42c6518a2a90bc264588ece84">~xml_tree_walker</a>()</td><td><a class="el" href="classpugi_1_1xml__tree__walker.html">pugi::xml_tree_walker</a></td><td><code> [virtual]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -179,7 +179,7 @@ Callback that is called when traversal of node ends.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 B

After

Width:  |  Height:  |  Size: 738 B

View File

@ -20,7 +20,7 @@
<h1>pugi::xpath_exception Member List</h1>This is the complete list of members for <a class="el" href="classpugi_1_1xpath__exception.html">pugi::xpath_exception</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__exception.html#436980baf3d09670ecc15a110ed0f654">what</a>() const </td><td><a class="el" href="classpugi_1_1xpath__exception.html">pugi::xpath_exception</a></td><td><code> [virtual]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__exception.html#9236dd8d2e0674417b2cb53760791017">xpath_exception</a>(const char *message)</td><td><a class="el" href="classpugi_1_1xpath__exception.html">pugi::xpath_exception</a></td><td><code> [explicit]</code></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -101,7 +101,7 @@ Return error message.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 764 B

After

Width:  |  Height:  |  Size: 765 B

View File

@ -27,7 +27,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node.html#c744d6466fee3a062ba3bb928331031e">xpath_node</a>()</td><td><a class="el" href="classpugi_1_1xpath__node.html">pugi::xpath_node</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node.html#c19206fda68c2c67ff2b42009debe74f">xpath_node</a>(const xml_node &amp;node)</td><td><a class="el" href="classpugi_1_1xpath__node.html">pugi::xpath_node</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node.html#5cc7cfd8ceb6cae4be45b2f29fe57f34">xpath_node</a>(const xml_attribute &amp;attribute, const xml_node &amp;parent)</td><td><a class="el" href="classpugi_1_1xpath__node.html">pugi::xpath_node</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -21,8 +21,8 @@
<a class="el" href="namespacepugi.html">pugi</a>::<a class="el" href="classpugi_1_1xpath__node.html">xpath_node</a></div>
<h1>pugi::xpath_node Class Reference</h1><!-- doxytag: class="pugi::xpath_node" -->Collaboration diagram for pugi::xpath_node:<p><center><img src="classpugi_1_1xpath__node__coll__graph.png" border="0" usemap="#pugi_1_1xpath__node__coll__map" alt="Collaboration graph"></center>
<map name="pugi_1_1xpath__node__coll__map">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="22,98,134,125" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="166,98,300,125" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="20,96,132,123" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="164,96,297,123" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xpath__node-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
XPath node class.
@ -334,7 +334,7 @@ Compares two XPath nodes.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,3 +1,3 @@
base referer
rect $classpugi_1_1xml__node.html 22,98 134,125
rect $classpugi_1_1xml__attribute.html 166,98 300,125
rect $classpugi_1_1xml__node.html 20,96 132,123
rect $classpugi_1_1xml__attribute.html 164,96 297,123

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -35,7 +35,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node__set.html#3e102821157e43d83f6623996709127d">xpath_node_set</a>()</td><td><a class="el" href="classpugi_1_1xpath__node__set.html">pugi::xpath_node_set</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node__set.html#59f1f078606bb6c4f1a081bb82bcf901">xpath_node_set</a>(const xpath_node_set &amp;ns)</td><td><a class="el" href="classpugi_1_1xpath__node__set.html">pugi::xpath_node_set</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__node__set.html#6ca44658aa0126e12f9fc3e3f8017376">~xpath_node_set</a>()</td><td><a class="el" href="classpugi_1_1xpath__node__set.html">pugi::xpath_node_set</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -21,9 +21,9 @@
<a class="el" href="namespacepugi.html">pugi</a>::<a class="el" href="classpugi_1_1xpath__node__set.html">xpath_node_set</a></div>
<h1>pugi::xpath_node_set Class Reference</h1><!-- doxytag: class="pugi::xpath_node_set" -->Collaboration diagram for pugi::xpath_node_set:<p><center><img src="classpugi_1_1xpath__node__set__coll__graph.png" border="0" usemap="#pugi_1_1xpath__node__set__coll__map" alt="Collaboration graph"></center>
<map name="pugi_1_1xpath__node__set__coll__map">
<area href="classpugi_1_1xpath__node.html" shape="rect" coords="82,189,207,216" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="25,98,137,125" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="166,98,299,125" alt="">
<area href="classpugi_1_1xpath__node.html" shape="rect" coords="77,187,203,213" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="23,96,135,123" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="164,96,297,123" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classpugi_1_1xpath__node__set-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Not necessarily ordered constant collection of XPath nodes.
@ -406,7 +406,7 @@ Return true if collection is empty.
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,4 +1,4 @@
base referer
rect $classpugi_1_1xpath__node.html 82,189 207,216
rect $classpugi_1_1xml__node.html 25,98 137,125
rect $classpugi_1_1xml__attribute.html 166,98 299,125
rect $classpugi_1_1xpath__node.html 77,187 203,213
rect $classpugi_1_1xml__node.html 23,96 135,123
rect $classpugi_1_1xml__attribute.html 164,96 297,123

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -24,7 +24,7 @@
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__query.html#0327ba2d1a1dddac08f18d400856dafc">evaluate_string</a>(const xml_node &amp;n)</td><td><a class="el" href="classpugi_1_1xpath__query.html">pugi::xpath_query</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__query.html#df3ce6efc17c1b58a1ff60bedb632140">xpath_query</a>(const char *query)</td><td><a class="el" href="classpugi_1_1xpath__query.html">pugi::xpath_query</a></td><td><code> [explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classpugi_1_1xpath__query.html#0ca09e7de62e46feb64d03995f389da3">~xpath_query</a>()</td><td><a class="el" href="classpugi_1_1xpath__query.html">pugi::xpath_query</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
</table><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -232,7 +232,7 @@ If expression does not directly evaluate to node set, function returns empty nod
</td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -188,7 +188,7 @@ Here is a list of all documented class members with links to the class documenta
: <a class="el" href="classpugi_1_1xml__tree__walker.html#aa0d4eb42c6518a2a90bc264588ece84">pugi::xml_tree_walker</a><li>~xpath_node_set()
: <a class="el" href="classpugi_1_1xpath__node__set.html#6ca44658aa0126e12f9fc3e3f8017376">pugi::xpath_node_set</a><li>~xpath_query()
: <a class="el" href="classpugi_1_1xpath__query.html#0ca09e7de62e46feb64d03995f389da3">pugi::xpath_query</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -31,7 +31,7 @@
<ul>
<li>type_t
: <a class="el" href="classpugi_1_1xpath__node__set.html#6c6899c8ecfbce9e42ec85540907080e">pugi::xpath_node_set</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -33,7 +33,7 @@
: <a class="el" href="classpugi_1_1xpath__node__set.html#6c6899c8ecfbce9e42ec85540907080e9d5ce5e6194ac2003da0d86d9af87437">pugi::xpath_node_set</a><li>type_sorted_reverse
: <a class="el" href="classpugi_1_1xpath__node__set.html#6c6899c8ecfbce9e42ec85540907080e7035df3be16759292de59850d6c0b9be">pugi::xpath_node_set</a><li>type_unsorted
: <a class="el" href="classpugi_1_1xpath__node__set.html#6c6899c8ecfbce9e42ec85540907080e7636fa164710ab9b069850ea3b3e4924">pugi::xpath_node_set</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -181,7 +181,7 @@
: <a class="el" href="classpugi_1_1xml__tree__walker.html#aa0d4eb42c6518a2a90bc264588ece84">pugi::xml_tree_walker</a><li>~xpath_node_set()
: <a class="el" href="classpugi_1_1xpath__node__set.html#6ca44658aa0126e12f9fc3e3f8017376">pugi::xpath_node_set</a><li>~xpath_query()
: <a class="el" href="classpugi_1_1xpath__query.html#0ca09e7de62e46feb64d03995f389da3">pugi::xpath_query</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -33,7 +33,7 @@
: <a class="el" href="classpugi_1_1xml__node.html#9084f97350ffc64af1eaf7c17c57f4ba">pugi::xml_node</a><li>const_iterator
: <a class="el" href="classpugi_1_1xpath__node__set.html#6987510e88cea4a396d186285c174de6">pugi::xpath_node_set</a><li>iterator
: <a class="el" href="classpugi_1_1xml__node.html#e053ea39add5a64de584f7a81212e388">pugi::xml_node</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -73,7 +73,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:53 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -38,7 +38,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
<li><a class="el" href="classpugi_1_1xpath__node__set.html">pugi::xpath_node_set</a>
<li><a class="el" href="classpugi_1_1xpath__query.html">pugi::xpath_query</a>
</ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -13,7 +13,7 @@
</ul></div>
<h1>pugixml Documentation</h1>
<p>
<h3 align="center">0.3 </h3><hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<h3 align="center">0.34 </h3><hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -1,2 +1,2 @@
base referer
rect $structpugi_1_1transfer__ownership__tag.html 8,8 202,34
rect $structpugi_1_1transfer__ownership__tag.html 5,5 200,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

After

Width:  |  Height:  |  Size: 585 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__attribute.html 7,8 141,34
rect $classpugi_1_1xml__attribute.html 5,5 139,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

After

Width:  |  Height:  |  Size: 433 B

View File

@ -1,3 +1,3 @@
base referer
rect $classpugi_1_1xml__attribute__iterator.html 121,7 302,34
rect $classpugi_1_1xml__node__iterator.html 130,58 293,85
rect $classpugi_1_1xml__attribute__iterator.html 119,5 300,32
rect $classpugi_1_1xml__node__iterator.html 128,56 291,83

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,3 +1,3 @@
base referer
rect $classpugi_1_1xml__node.html 9,8 121,34
rect $classpugi_1_1xml__document.html 170,8 314,34
rect $classpugi_1_1xml__node.html 7,5 119,32
rect $classpugi_1_1xml__document.html 169,5 311,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 602 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xml__tree__walker.html 9,8 161,34
rect $classpugi_1_1xml__tree__walker.html 7,5 159,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

After

Width:  |  Height:  |  Size: 492 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xpath__exception.html 137,8 289,34
rect $classpugi_1_1xpath__exception.html 135,5 287,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 644 B

After

Width:  |  Height:  |  Size: 645 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xpath__node.html 7,8 133,34
rect $classpugi_1_1xpath__node.html 5,5 131,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 404 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xpath__node__set.html 9,8 158,34
rect $classpugi_1_1xpath__node__set.html 5,5 155,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 463 B

View File

@ -1,2 +1,2 @@
base referer
rect $classpugi_1_1xpath__query.html 9,8 137,34
rect $classpugi_1_1xpath__query.html 7,5 135,32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 438 B

View File

@ -22,44 +22,44 @@
<table border="0" cellspacing="10" cellpadding="0">
<tr><td><img src="inherit__graph__0.png" border="0" alt="" usemap="#pugi_1_1transfer__ownership__tag_map">
<map name="pugi_1_1transfer__ownership__tag_map">
<area href="structpugi_1_1transfer__ownership__tag.html" shape="rect" coords="8,8,202,34" alt="">
<area href="structpugi_1_1transfer__ownership__tag.html" shape="rect" coords="5,5,200,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__1.png" border="0" alt="" usemap="#pugi_1_1xml__attribute_map">
<map name="pugi_1_1xml__attribute_map">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="7,8,141,34" alt="">
<area href="classpugi_1_1xml__attribute.html" shape="rect" coords="5,5,139,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__2.png" border="0" alt="" usemap="#pugi_1_1xml__attribute__iterator_map">
<map name="pugi_1_1xml__attribute__iterator_map">
<area href="classpugi_1_1xml__attribute__iterator.html" shape="rect" coords="121,7,302,34" alt="">
<area href="classpugi_1_1xml__node__iterator.html" shape="rect" coords="130,58,293,85" alt="">
<area href="classpugi_1_1xml__attribute__iterator.html" shape="rect" coords="119,5,300,32" alt="">
<area href="classpugi_1_1xml__node__iterator.html" shape="rect" coords="128,56,291,83" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__3.png" border="0" alt="" usemap="#pugi_1_1xml__node_map">
<map name="pugi_1_1xml__node_map">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="9,8,121,34" alt="">
<area href="classpugi_1_1xml__document.html" shape="rect" coords="170,8,314,34" alt="">
<area href="classpugi_1_1xml__node.html" shape="rect" coords="7,5,119,32" alt="">
<area href="classpugi_1_1xml__document.html" shape="rect" coords="169,5,311,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__4.png" border="0" alt="" usemap="#pugi_1_1xml__tree__walker_map">
<map name="pugi_1_1xml__tree__walker_map">
<area href="classpugi_1_1xml__tree__walker.html" shape="rect" coords="9,8,161,34" alt="">
<area href="classpugi_1_1xml__tree__walker.html" shape="rect" coords="7,5,159,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__5.png" border="0" alt="" usemap="#pugi_1_1xpath__exception_map">
<map name="pugi_1_1xpath__exception_map">
<area href="classpugi_1_1xpath__exception.html" shape="rect" coords="137,8,289,34" alt="">
<area href="classpugi_1_1xpath__exception.html" shape="rect" coords="135,5,287,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__6.png" border="0" alt="" usemap="#pugi_1_1xpath__node_map">
<map name="pugi_1_1xpath__node_map">
<area href="classpugi_1_1xpath__node.html" shape="rect" coords="7,8,133,34" alt="">
<area href="classpugi_1_1xpath__node.html" shape="rect" coords="5,5,131,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__7.png" border="0" alt="" usemap="#pugi_1_1xpath__node__set_map">
<map name="pugi_1_1xpath__node__set_map">
<area href="classpugi_1_1xpath__node__set.html" shape="rect" coords="9,8,158,34" alt="">
<area href="classpugi_1_1xpath__node__set.html" shape="rect" coords="5,5,155,32" alt="">
</map></td></tr>
<tr><td><img src="inherit__graph__8.png" border="0" alt="" usemap="#pugi_1_1xpath__query_map">
<map name="pugi_1_1xpath__query_map">
<area href="classpugi_1_1xpath__query.html" shape="rect" coords="9,8,137,34" alt="">
<area href="classpugi_1_1xpath__query.html" shape="rect" coords="7,5,135,32" alt="">
</map></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:53 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -55,7 +55,7 @@ Here is a list of all documented namespace members with links to the namespaces
: <a class="el" href="namespacepugi.html#8617ea5ba78c676aff8b7af960cb2f4b">pugi</a><li>parse_ws_pcdata
: <a class="el" href="namespacepugi.html#e492a24302294f1ce3fbd56f2edbf131">pugi</a><li>xml_node_type
: <a class="el" href="namespacepugi.html#137e94a038e4ab0ada6477cf7f6153a9">pugi</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -30,7 +30,7 @@
<ul>
<li>xml_node_type
: <a class="el" href="namespacepugi.html#137e94a038e4ab0ada6477cf7f6153a9">pugi</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -36,7 +36,7 @@
: <a class="el" href="namespacepugi.html#137e94a038e4ab0ada6477cf7f6153a9d58c55e810076e076318cc2268191b1f">pugi</a><li>node_pcdata
: <a class="el" href="namespacepugi.html#137e94a038e4ab0ada6477cf7f6153a95c0042693a8b8b6b54c191b4403fca21">pugi</a><li>node_pi
: <a class="el" href="namespacepugi.html#137e94a038e4ab0ada6477cf7f6153a9cd772b12b3d5442b9771151f45134440">pugi</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -31,7 +31,7 @@
<li>as_utf16()
: <a class="el" href="namespacepugi.html#557d234d14b2da1cf7ad9b72a05d2698">pugi</a><li>as_utf8()
: <a class="el" href="namespacepugi.html#55c7bb5900e82254aa1b9671c61030fd">pugi</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -45,7 +45,7 @@
: <a class="el" href="namespacepugi.html#1e943812f2de36fc3ee14f7756afdbd7">pugi</a><li>parse_wnorm_attribute
: <a class="el" href="namespacepugi.html#8617ea5ba78c676aff8b7af960cb2f4b">pugi</a><li>parse_ws_pcdata
: <a class="el" href="namespacepugi.html#e492a24302294f1ce3fbd56f2edbf131">pugi</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:52 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:45 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -661,7 +661,7 @@ This is the default set of formatting flags.
It includes indenting nodes depending on their depth in DOM tree and considering input data to be UTF-8. </td>
</tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -19,7 +19,7 @@
<h1>pugixml Namespace List</h1>Here is a list of all documented namespaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="namespacepugi.html">pugi</a></td><td class="indexvalue">The PugiXML Parser namespace </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:50 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:42 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -28,7 +28,7 @@ Struct used to distinguish parsing with ownership transfer from parsing without
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 21 22:19:51 2007 for pugixml by&nbsp;
<hr size="1"><address style="align: right;"><small>Generated on Wed Oct 31 20:23:44 2007 for pugixml by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
</body>

View File

@ -415,10 +415,12 @@ environment). The library is written in standard-conformant C++ and was tested o
<p>
<ul>
<li>Windows 32-bit (MSVC<sup><a href="#annot-3">3</a></sup> 7.0 (2002), MSVC 7.1 (2003), MSVC 8.0 (2005), ICC<sup><a href="#annot-4">4</a></sup> 8.0, ICC 8.1, GCC 3.4.2 (MinGW), BCC<sup><a href="#annot-5">5</a></sup> 5.82)
<li>Windows 32-bit (MSVC<sup><a href="#annot-3">3</a></sup> 6.0, MSVC 7.0 (2002), MSVC 7.1 (2003), MSVC 8.0 (2005), ICC<sup><a href="#annot-4">4</a></sup> 8.0, ICC 8.1, GCC 3.4.2 (MinGW), BCC<sup><a href="#annot-5">5</a></sup> 5.82, DMC<sup><a href="#annot-6">6</a></sup> 8.50, Comeau C++ 4.3.3, PGI<sup><a href="#annot-7">7</a></sup> 6.2, CW<sup><a href="#annot-8">8</a></sup> 8.0)
<li>Linux 32-bit (GCC 3.2)
<li>Sony Playstation Portable (GCC 3.4.2; in PUGIXML_NO_STL mode)
<li>Sony Playstation 3 (GCC 4.0.2; in PUGIXML_NO_EXCEPTIONS mode (-fno-exceptions))
<li>Microsoft Xbox (MSVC 7.1)
<li>Microsoft Xbox 360 (MSVC 8.0)
</ul>
</p>
@ -428,7 +430,10 @@ environment). The library is written in standard-conformant C++ and was tested o
<a name="annot-3"><sup>3</sup><small> MSVC is Microsoft Visual C++ Compiler</small> <br>
<a name="annot-4"><sup>4</sup><small> ICC is Intel C++ Compiler</small> <br>
<a name="annot-5"><sup>5</sup><small> BCC is Borland C++ Compiler</small>
<a name="annot-5"><sup>5</sup><small> BCC is Borland C++ Compiler</small> <br>
<a name="annot-6"><sup>6</sup><small> DMC is Digital Mars C++ Compiler</small> <br>
<a name="annot-7"><sup>7</sup><small> PGI is Portland Group C++ Compiler</small>
<a name="annot-8"><sup>8</sup><small> CW is Metrowerks CodeWarrior</small>
<hr>
@ -624,6 +629,17 @@ if necessary)
</ul>
</dd>
</dt>
<dt>31.10.2007 - v0.34
<dd>Maintenance release. Changes: <ul>
<li>Improved compatibility (supported Digital Mars C++, MSVC 6, CodeWarrior 8, PGI C++, Comeau, supported PS3 and XBox360)
<li>Fixed bug with loading from text-mode iostreams
<li>Fixed leak when transfer_ownership is true and parsing is failing
<li>Fixed bug in saving (\r and \n are now escaped in attribute values)
<li>PUGIXML_NO_EXCEPTION flag for platforms without exception handling
<li>Renamed free() to destroy() - some macro conflicts were reported
</ul>
</dd>
</dt>
</dl>
<hr>
@ -670,7 +686,7 @@ OTHER DEALINGS IN THE SOFTWARE.
<hr>
<p>Revised 21 February, 2007</p>
<p>Revised 31 October, 2007</p>
<p><i>&copy; Copyright <a href="mailto:arseny.kapoulkine@gmail.com">Arseny Kapoulkine</a> 2006-2007. All Rights Reserved.</i></p>
</body>
</html>

1161
docs/pugixml.cfg Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
// Pug Improved XML Parser - Version 0.3
// Pug Improved XML Parser - Version 0.34
// --------------------------------------------------------
// Copyright (C) 2006-2007, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
// This work is based on the pugxml parser, which is:
@ -20,4 +20,8 @@
// Uncomment this to disable XPath
// #define PUGIXML_NO_XPATH
// Uncomment this to disable exceptions
// Note: you can't use XPath with PUGIXML_NO_EXCEPTIONS
// #define PUGIXML_NO_EXCEPTIONS
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
// Pug Improved XML Parser - Version 0.3
// Pug Improved XML Parser - Version 0.34
// --------------------------------------------------------
// Copyright (C) 2006-2007, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
// This work is based on the pugxml parser, which is:
@ -29,8 +29,8 @@
# endif
#endif
#include <cstddef>
#include <cstring>
#include <stddef.h>
#include <string.h>
/// The PugiXML Parser namespace.
namespace pugi
@ -311,7 +311,11 @@ namespace pugi
xml_attribute_struct* _attr;
/// \internal Safe bool type
#ifdef __MWERKS__
typedef bool (xml_attribute::*unspecified_bool_type)() const;
#else
typedef xml_attribute_struct* xml_attribute::*unspecified_bool_type;
#endif
/// \internal Initializing ctor
explicit xml_attribute(xml_attribute_struct* attr);
@ -519,7 +523,11 @@ namespace pugi
xml_node_struct* _root;
/// \internal Safe bool type
#ifdef __MWERKS__
typedef bool (xml_node::*unspecified_bool_type)() const;
#else
typedef xml_node_struct* xml_node::*unspecified_bool_type;
#endif
/// \internal Initializing ctor
explicit xml_node(xml_node_struct* p);
@ -1315,7 +1323,7 @@ namespace pugi
const xml_document& operator=(const xml_document&);
void create();
void free();
void destroy();
public:
/**

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////
//
// Pug Improved XML Parser - Version 0.3
// Pug Improved XML Parser - Version 0.34
// --------------------------------------------------------
// Copyright (C) 2006-2007, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
// This work is based on the pugxml parser, which is:
@ -30,6 +30,17 @@
# pragma warning(disable: 4996) // this function or variable may be unsafe
#endif
#if defined(_MSC_VER) && _MSC_VER == 1200
// MSVC6 workaround
namespace std
{
template <typename T> const T& min(const T& a, const T& b)
{
return _cpp_min(a, b);
}
}
#endif
namespace
{
using namespace pugi;
@ -176,7 +187,7 @@ namespace
return false;
else // lp is parent, ln & rn are distinct siblings
{
for (; ln; ln = ln.next_sibling());
for (; ln; ln = ln.next_sibling())
if (ln == rn)
return true;
@ -256,7 +267,7 @@ namespace
{
#if defined(__USE_ISOC99)
return isnan(value);
#elif defined(_MSC_VER) || defined(__BORLANDC__)
#elif (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(__COMO__)
return !!_isnan(value);
#elif FLT_RADIX == 2 && DBL_MAX_EXP == 1024 && DBL_MANT_DIG == 53
// IEEE 754
@ -275,7 +286,7 @@ namespace
{
#if defined(__USE_ISOC99)
return !isfinite(value);
#elif defined(_MSC_VER) || defined(__BORLANDC__)
#elif (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(__COMO__)
return !_finite(value);
#elif FLT_RADIX == 2 && DBL_MAX_EXP == 1024 && DBL_MANT_DIG == 53
// IEEE 754
@ -371,7 +382,7 @@ namespace
double ieee754_round(double value)
{
return value == value ? floor(value + 0.5) : value;
return is_nan(value) ? value : floor(value + 0.5);
}
const char* local_name(const char* name)
@ -550,6 +561,8 @@ namespace pugi
return block->data;
}
}
void* node();
};
xpath_node::xpath_node()
@ -1155,6 +1168,13 @@ namespace pugi
nodetest_all,
nodetest_all_in_namespace
};
template <axis_t N> struct axis_to_type
{
static const axis_t axis;
};
template <axis_t N> const axis_t axis_to_type<N>::axis = N;
class xpath_ast_node
{
@ -1181,45 +1201,147 @@ namespace pugi
xpath_ast_node(const xpath_ast_node&);
xpath_ast_node& operator=(const xpath_ast_node&);
template <class Cbool, class Cdouble, class Cstring> bool compare_eq(xpath_ast_node* lhs, xpath_ast_node* rhs, xpath_context& c)
template <class Cbool, class Cdouble, class Cstring> struct compare_eq
{
if (lhs->rettype() != ast_type_node_set && rhs->rettype() != ast_type_node_set)
static bool run(xpath_ast_node* lhs, xpath_ast_node* rhs, xpath_context& c)
{
if (lhs->rettype() == ast_type_boolean || rhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (lhs->rettype() == ast_type_number || rhs->rettype() == ast_type_number)
return Cdouble()(lhs->eval_number(c), rhs->eval_number(c));
else if (lhs->rettype() == ast_type_string || rhs->rettype() == ast_type_string)
return Cstring()(lhs->eval_string(c), rhs->eval_string(c));
if (lhs->rettype() != ast_type_node_set && rhs->rettype() != ast_type_node_set)
{
if (lhs->rettype() == ast_type_boolean || rhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (lhs->rettype() == ast_type_number || rhs->rettype() == ast_type_number)
return Cdouble()(lhs->eval_number(c), rhs->eval_number(c));
else if (lhs->rettype() == ast_type_string || rhs->rettype() == ast_type_string)
return Cstring()(lhs->eval_string(c), rhs->eval_string(c));
else
{
assert(!"Wrong types");
return false;
}
}
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
xpath_node_set ls = lhs->eval_node_set(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cstring()(string_value(*li), string_value(*ri)))
return true;
}
return false;
}
else if (lhs->rettype() != ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
if (lhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (lhs->rettype() == ast_type_number)
{
double l = lhs->eval_number(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cdouble()(l, convert_string_to_number(string_value(*ri).c_str())) == true)
return true;
}
return false;
}
else if (lhs->rettype() == ast_type_string)
{
std::string l = lhs->eval_string(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cstring()(l, string_value(*ri)) == true)
return true;
}
return false;
}
else
{
assert(!"Wrong types");
return false;
}
}
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() != ast_type_node_set)
{
if (rhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (rhs->rettype() == ast_type_number)
{
xpath_node_set ls = lhs->eval_node_set(c);
double r = rhs->eval_number(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
if (Cdouble()(convert_string_to_number(string_value(*li).c_str()), r) == true)
return true;
}
return false;
}
else if (rhs->rettype() == ast_type_string)
{
xpath_node_set ls = lhs->eval_node_set(c);
std::string r = rhs->eval_string(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
if (Cstring()(string_value(*li), r) == true)
return true;
}
return false;
}
else
{
assert(!"Wrong types");
return false;
}
}
else
{
assert(!"Wrong types");
return false;
}
}
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() == ast_type_node_set)
};
template <class Cdouble> struct compare_rel
{
static bool run(xpath_ast_node* lhs, xpath_ast_node* rhs, xpath_context& c)
{
xpath_node_set ls = lhs->eval_node_set(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
if (lhs->rettype() != ast_type_node_set && rhs->rettype() != ast_type_node_set)
return Cdouble()(lhs->eval_number(c), rhs->eval_number(c));
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
if (Cstring()(string_value(*li), string_value(*ri)))
return true;
xpath_node_set ls = lhs->eval_node_set(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
double l = convert_string_to_number(string_value(*li).c_str());
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cdouble()(l, convert_string_to_number(string_value(*ri).c_str())) == true)
return true;
}
}
return false;
}
return false;
}
else if (lhs->rettype() != ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
if (lhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (lhs->rettype() == ast_type_number)
else if (lhs->rettype() != ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
double l = lhs->eval_number(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cdouble()(l, convert_string_to_number(string_value(*ri).c_str())) == true)
@ -1228,30 +1350,7 @@ namespace pugi
return false;
}
else if (lhs->rettype() == ast_type_string)
{
std::string l = lhs->eval_string(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cstring()(l, string_value(*ri)) == true)
return true;
}
return false;
}
else
{
assert(!"Wrong types");
return false;
}
}
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() != ast_type_node_set)
{
if (rhs->rettype() == ast_type_boolean)
return Cbool()(lhs->eval_boolean(c), rhs->eval_boolean(c));
else if (rhs->rettype() == ast_type_number)
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() != ast_type_node_set)
{
xpath_node_set ls = lhs->eval_node_set(c);
double r = rhs->eval_number(c);
@ -1264,87 +1363,14 @@ namespace pugi
return false;
}
else if (rhs->rettype() == ast_type_string)
{
xpath_node_set ls = lhs->eval_node_set(c);
std::string r = rhs->eval_string(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
if (Cstring()(string_value(*li), r) == true)
return true;
}
return false;
}
else
{
assert(!"Wrong types");
return false;
}
}
else
{
assert(!"Wrong types");
return false;
}
}
};
template <class Cdouble> bool compare_rel(xpath_ast_node* lhs, xpath_ast_node* rhs, xpath_context& c)
{
if (lhs->rettype() != ast_type_node_set && rhs->rettype() != ast_type_node_set)
return Cdouble()(lhs->eval_number(c), rhs->eval_number(c));
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
xpath_node_set ls = lhs->eval_node_set(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
double l = convert_string_to_number(string_value(*li).c_str());
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cdouble()(l, convert_string_to_number(string_value(*ri).c_str())) == true)
return true;
}
}
return false;
}
else if (lhs->rettype() != ast_type_node_set && rhs->rettype() == ast_type_node_set)
{
double l = lhs->eval_number(c);
xpath_node_set rs = rhs->eval_node_set(c);
for (xpath_node_set::const_iterator ri = rs.begin(); ri != rs.end(); ++ri)
{
if (Cdouble()(l, convert_string_to_number(string_value(*ri).c_str())) == true)
return true;
}
return false;
}
else if (lhs->rettype() == ast_type_node_set && rhs->rettype() != ast_type_node_set)
{
xpath_node_set ls = lhs->eval_node_set(c);
double r = rhs->eval_number(c);
for (xpath_node_set::const_iterator li = ls.begin(); li != ls.end(); ++li)
{
if (Cdouble()(convert_string_to_number(string_value(*li).c_str()), r) == true)
return true;
}
return false;
}
else
{
assert(!"Wrong types");
return false;
}
}
void apply_predicate(xpath_node_set& ns, size_t first, xpath_ast_node* expr, const xpath_context& context)
{
xpath_context c;
@ -1456,25 +1482,31 @@ namespace pugi
}
}
template <axis_t axis> void step_fill(xpath_node_set& ns, const xml_node& n)
template <class T> void step_fill(xpath_node_set& ns, const xml_node& n, T)
{
const axis_t axis = T::axis;
switch (axis)
{
case axis_attribute:
{
ns.m_type = ns.empty() ? xpath_node_set::type_sorted : xpath_node_set::type_unsorted;
for (xml_attribute a = n.first_attribute(); a; a = a.next_attribute())
step_push(ns, a, n);
break;
}
case axis_child:
{
ns.m_type = ns.empty() ? xpath_node_set::type_sorted : xpath_node_set::type_unsorted;
for (xml_node c = n.first_child(); c; c = c.next_sibling())
step_push(ns, c);
break;
}
case axis_descendant:
case axis_descendant_or_self:
@ -1513,20 +1545,24 @@ namespace pugi
}
case axis_following_sibling:
{
ns.m_type = ns.empty() ? xpath_node_set::type_sorted : xpath_node_set::type_unsorted;
for (xml_node c = n.next_sibling(); c; c = c.next_sibling())
step_push(ns, c);
break;
}
case axis_preceding_sibling:
{
ns.m_type = ns.empty() ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_unsorted;
for (xml_node c = n.previous_sibling(); c; c = c.previous_sibling())
step_push(ns, c);
break;
}
case axis_following:
{
@ -1623,8 +1659,10 @@ namespace pugi
}
}
template <axis_t axis> void step_fill(xpath_node_set& ns, const xml_attribute& a, const xml_node& p)
template <class T> void step_fill(xpath_node_set& ns, const xml_attribute& a, const xml_node& p, T)
{
const axis_t axis = T::axis;
switch (axis)
{
case axis_ancestor:
@ -1652,8 +1690,10 @@ namespace pugi
}
}
template <axis_t axis> void step_do(xpath_node_set& ns, xpath_context& c)
template <class T> void step_do(xpath_node_set& ns, xpath_context& c, T v)
{
const axis_t axis = T::axis;
switch (axis)
{
case axis_parent:
@ -1726,17 +1766,17 @@ namespace pugi
size_t s = ns.size();
if (it->node())
step_fill<axis>(ns, it->node());
step_fill(ns, it->node(), v);
else
step_fill<axis>(ns, it->attribute(), it->parent());
step_fill(ns, it->attribute(), it->parent(), v);
apply_predicates(ns, s, c);
}
}
else
{
if (c.n.node()) step_fill<axis>(ns, c.n.node());
else step_fill<axis>(ns, c.n.attribute(), c.n.parent());
if (c.n.node()) step_fill(ns, c.n.node(), v);
else step_fill(ns, c.n.attribute(), c.n.parent(), v);
apply_predicates(ns, 0, c);
}
@ -1760,14 +1800,14 @@ namespace pugi
size_t s = ns.size();
if (it->node())
step_fill<axis>(ns, it->node());
step_fill(ns, it->node(), v);
apply_predicates(ns, s, c);
}
}
else if (c.n.node())
{
step_fill<axis>(ns, c.n.node());
step_fill(ns, c.n.node(), v);
apply_predicates(ns, 0, c);
}
@ -1836,22 +1876,22 @@ namespace pugi
else return m_right->eval_boolean(c);
case ast_op_equal:
return compare_eq<equal_to<bool>, equal_to<double>, equal_to<std::string> >(m_left, m_right, c);
return compare_eq<equal_to<bool>, equal_to<double>, equal_to<std::string> >::run(m_left, m_right, c);
case ast_op_not_equal:
return compare_eq<not_equal_to<bool>, not_equal_to<double>, not_equal_to<std::string> >(m_left, m_right, c);
return compare_eq<not_equal_to<bool>, not_equal_to<double>, not_equal_to<std::string> >::run(m_left, m_right, c);
case ast_op_less:
return compare_rel<less<double> >(m_left, m_right, c);
return compare_rel<less<double> >::run(m_left, m_right, c);
case ast_op_greater:
return compare_rel<greater<double> >(m_left, m_right, c);
return compare_rel<greater<double> >::run(m_left, m_right, c);
case ast_op_less_or_equal:
return compare_rel<less_equal<double> >(m_left, m_right, c);
return compare_rel<less_equal<double> >::run(m_left, m_right, c);
case ast_op_greater_or_equal:
return compare_rel<greater_equal<double> >(m_left, m_right, c);
return compare_rel<greater_equal<double> >::run(m_left, m_right, c);
case ast_func_starts_with:
return starts_with(m_left->eval_string(c), m_right->eval_string(c).c_str());
@ -2125,7 +2165,7 @@ namespace pugi
std::string s = m_left->eval_string(c);
double first = ieee754_round(m_right->eval_number(c));
if (first != first) return ""; // NaN
if (is_nan(first)) return ""; // NaN
else if (first >= s.length() + 1) return "";
size_t pos = first < 1 ? 1 : (size_t)first;
@ -2139,7 +2179,7 @@ namespace pugi
double first = ieee754_round(m_right->eval_number(c));
double last = first + ieee754_round(m_third->eval_number(c));
if (first != first || last != last) return "";
if (is_nan(first) || is_nan(last)) return "";
else if (first >= s.length() + 1) return "";
else if (first >= last) return "";
@ -2305,55 +2345,55 @@ namespace pugi
switch (m_axis)
{
case axis_ancestor:
step_do<axis_ancestor>(ns, c);
step_do(ns, c, axis_to_type<axis_ancestor>());
break;
case axis_ancestor_or_self:
step_do<axis_ancestor_or_self>(ns, c);
step_do(ns, c, axis_to_type<axis_ancestor_or_self>());
break;
case axis_attribute:
step_do<axis_attribute>(ns, c);
step_do(ns, c, axis_to_type<axis_attribute>());
break;
case axis_child:
step_do<axis_child>(ns, c);
step_do(ns, c, axis_to_type<axis_child>());
break;
case axis_descendant:
step_do<axis_descendant>(ns, c);
step_do(ns, c, axis_to_type<axis_descendant>());
break;
case axis_descendant_or_self:
step_do<axis_descendant_or_self>(ns, c);
step_do(ns, c, axis_to_type<axis_descendant_or_self>());
break;
case axis_following:
step_do<axis_following>(ns, c);
step_do(ns, c, axis_to_type<axis_following>());
break;
case axis_following_sibling:
step_do<axis_following_sibling>(ns, c);
step_do(ns, c, axis_to_type<axis_following_sibling>());
break;
case axis_namespace:
step_do<axis_namespace>(ns, c);
step_do(ns, c, axis_to_type<axis_namespace>());
break;
case axis_parent:
step_do<axis_parent>(ns, c);
step_do(ns, c, axis_to_type<axis_parent>());
break;
case axis_preceding:
step_do<axis_preceding>(ns, c);
step_do(ns, c, axis_to_type<axis_preceding>());
break;
case axis_preceding_sibling:
step_do<axis_preceding_sibling>(ns, c);
step_do(ns, c, axis_to_type<axis_preceding_sibling>());
break;
case axis_self:
step_do<axis_self>(ns, c);
step_do(ns, c, axis_to_type<axis_self>());
break;
default:
@ -2434,13 +2474,15 @@ namespace pugi
return false;
case ast_func_concat:
{
if (m_left->contains(type)) return true;
for (xpath_ast_node* n = m_right; n; n = n->m_next)
if (n->contains(type)) return true;
return false;
}
case ast_func_starts_with:
case ast_func_contains:
case ast_func_substring_before:
@ -2475,6 +2517,9 @@ namespace pugi
default:
throw xpath_exception("Unknown semantics error");
#ifdef __DMC__
return false; // Digital Mars C++
#endif
}
}
@ -2585,6 +2630,7 @@ namespace pugi
break;
case ast_func_concat:
{
m_left->check_semantics();
for (xpath_ast_node* n = m_right; n; n = n->m_next)
@ -2592,7 +2638,8 @@ namespace pugi
m_rettype = ast_type_string;
break;
}
case ast_func_starts_with:
case ast_func_contains:
m_left->check_semantics();
@ -2653,8 +2700,9 @@ namespace pugi
if (m_left) m_left->check_semantics();
m_rettype = ast_type_number;
break;
case ast_step:
{
if (m_left)
{
m_left->check_semantics();
@ -2667,6 +2715,7 @@ namespace pugi
m_rettype = ast_type_node_set;
break;
}
case ast_step_root:
m_rettype = ast_type_node_set;
@ -2681,17 +2730,13 @@ namespace pugi
{
return m_rettype;
}
void* operator new(size_t size, xpath_allocator& a)
{
return a.alloc(size);
}
void operator delete(void*, xpath_allocator&)
{
}
};
void* xpath_allocator::node()
{
return alloc(sizeof(xpath_ast_node));
}
class xpath_parser
{
private:
@ -2713,7 +2758,7 @@ namespace pugi
if (m_lexer.current() != lex_string)
throw xpath_exception("incorrect variable reference");
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_variable, m_lexer.contents(), m_alloc);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_variable, m_lexer.contents(), m_alloc);
m_lexer.next();
return n;
@ -2735,7 +2780,7 @@ namespace pugi
case lex_quoted_string:
{
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_string_constant, m_lexer.contents(), m_alloc);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_string_constant, m_lexer.contents(), m_alloc);
m_lexer.next();
return n;
@ -2743,7 +2788,7 @@ namespace pugi
case lex_number:
{
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_number_constant, m_lexer.contents(), m_alloc);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_number_constant, m_lexer.contents(), m_alloc);
m_lexer.next();
return n;
@ -2813,7 +2858,7 @@ namespace pugi
else if (function == "concat" && argc == 2)
{
// set_next was done earlier
return new (m_alloc) xpath_ast_node(ast_func_concat, args[0], args[1]);
return new (m_alloc.node()) xpath_ast_node(ast_func_concat, args[0], args[1]);
}
else if (function == "ceiling" && argc == 1)
type = ast_func_ceiling;
@ -2919,10 +2964,10 @@ namespace pugi
{
switch (argc)
{
case 0: return new (m_alloc) xpath_ast_node(type);
case 1: return new (m_alloc) xpath_ast_node(type, args[0]);
case 2: return new (m_alloc) xpath_ast_node(type, args[0], args[1]);
case 3: return new (m_alloc) xpath_ast_node(type, args[0], args[1], args[2]);
case 0: return new (m_alloc.node()) xpath_ast_node(type);
case 1: return new (m_alloc.node()) xpath_ast_node(type, args[0]);
case 2: return new (m_alloc.node()) xpath_ast_node(type, args[0], args[1]);
case 3: return new (m_alloc.node()) xpath_ast_node(type, args[0], args[1], args[2]);
}
}
@ -2931,6 +2976,9 @@ namespace pugi
default:
throw xpath_exception("unrecognizable primary expression");
#ifdef __DMC__
return 0; // Digital Mars C++
#endif
}
}
@ -2945,7 +2993,7 @@ namespace pugi
{
m_lexer.next();
n = new (m_alloc) xpath_ast_node(ast_filter, n, parse_expression(), axis_child);
n = new (m_alloc.node()) xpath_ast_node(ast_filter, n, parse_expression(), axis_child);
if (m_lexer.current() != lex_close_square_brace)
throw xpath_exception("Unmatched square brace");
@ -2975,13 +3023,13 @@ namespace pugi
{
m_lexer.next();
return new (m_alloc) xpath_ast_node(ast_step, set, axis_self, nodetest_type_node, 0, m_alloc);
return new (m_alloc.node()) xpath_ast_node(ast_step, set, axis_self, nodetest_type_node, 0, m_alloc);
}
else if (m_lexer.current() == lex_double_dot)
{
m_lexer.next();
return new (m_alloc) xpath_ast_node(ast_step, set, axis_parent, nodetest_type_node, 0, m_alloc);
return new (m_alloc.node()) xpath_ast_node(ast_step, set, axis_parent, nodetest_type_node, 0, m_alloc);
}
else // implied child axis
axis = axis_child;
@ -3104,7 +3152,7 @@ namespace pugi
else
throw xpath_exception("Unrecognized node type");
nt_name.clear();
nt_name.erase(nt_name.begin(), nt_name.end());
}
else if (nt_name == "processing-instruction")
{
@ -3150,7 +3198,7 @@ namespace pugi
}
else throw xpath_exception("Unrecognized node test");
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_step, set, axis, nt_type, nt_name.c_str(), m_alloc);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_step, set, axis, nt_type, nt_name.c_str(), m_alloc);
xpath_ast_node* last = 0;
@ -3158,7 +3206,7 @@ namespace pugi
{
m_lexer.next();
xpath_ast_node* pred = new (m_alloc) xpath_ast_node(ast_predicate, parse_expression(), 0, axis);
xpath_ast_node* pred = new (m_alloc.node()) xpath_ast_node(ast_predicate, parse_expression(), 0, axis);
if (m_lexer.current() != lex_close_square_brace)
throw xpath_exception("unmatched square brace");
@ -3184,7 +3232,7 @@ namespace pugi
m_lexer.next();
if (l == lex_double_slash)
n = new (m_alloc) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
n = new (m_alloc.node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
n = parse_step(n);
}
@ -3203,7 +3251,7 @@ namespace pugi
m_lexer.next();
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_step_root);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_step_root);
try
{
@ -3220,8 +3268,8 @@ namespace pugi
{
m_lexer.next();
xpath_ast_node* n = new (m_alloc) xpath_ast_node(ast_step_root);
n = new (m_alloc) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
xpath_ast_node* n = new (m_alloc.node()) xpath_ast_node(ast_step_root);
n = new (m_alloc.node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
return parse_relative_location_path(n);
}
@ -3266,7 +3314,7 @@ namespace pugi
m_lexer.next();
if (l == lex_double_slash)
n = new (m_alloc) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
n = new (m_alloc.node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0, m_alloc);
// select from location path
return parse_relative_location_path(n);
@ -3286,7 +3334,7 @@ namespace pugi
{
m_lexer.next();
n = new (m_alloc) xpath_ast_node(ast_op_union, n, parse_union_expression());
n = new (m_alloc.node()) xpath_ast_node(ast_op_union, n, parse_union_expression());
}
return n;
@ -3299,7 +3347,7 @@ namespace pugi
{
m_lexer.next();
return new (m_alloc) xpath_ast_node(ast_op_negate, parse_unary_expression());
return new (m_alloc.node()) xpath_ast_node(ast_op_negate, parse_unary_expression());
}
else return parse_union_expression();
}
@ -3319,7 +3367,7 @@ namespace pugi
!strcmp(m_lexer.contents(), "div") ? ast_op_divide : ast_op_mod;
m_lexer.next();
n = new (m_alloc) xpath_ast_node(op, n, parse_unary_expression());
n = new (m_alloc.node()) xpath_ast_node(op, n, parse_unary_expression());
}
return n;
@ -3338,7 +3386,7 @@ namespace pugi
m_lexer.next();
n = new (m_alloc) xpath_ast_node(l == lex_plus ? ast_op_add : ast_op_subtract, n, parse_multiplicative_expression());
n = new (m_alloc.node()) xpath_ast_node(l == lex_plus ? ast_op_add : ast_op_subtract, n, parse_multiplicative_expression());
}
return n;
@ -3359,7 +3407,7 @@ namespace pugi
lexeme_t l = m_lexer.current();
m_lexer.next();
n = new (m_alloc) xpath_ast_node(l == lex_less ? ast_op_less : l == lex_greater ? ast_op_greater :
n = new (m_alloc.node()) xpath_ast_node(l == lex_less ? ast_op_less : l == lex_greater ? ast_op_greater :
l == lex_less_or_equal ? ast_op_less_or_equal : ast_op_greater_or_equal,
n, parse_additive_expression());
}
@ -3380,7 +3428,7 @@ namespace pugi
m_lexer.next();
n = new (m_alloc) xpath_ast_node(l == lex_equal ? ast_op_equal : ast_op_not_equal, n, parse_relational_expression());
n = new (m_alloc.node()) xpath_ast_node(l == lex_equal ? ast_op_equal : ast_op_not_equal, n, parse_relational_expression());
}
return n;
@ -3395,7 +3443,7 @@ namespace pugi
{
m_lexer.next();
n = new (m_alloc) xpath_ast_node(ast_op_and, n, parse_equality_expression());
n = new (m_alloc.node()) xpath_ast_node(ast_op_and, n, parse_equality_expression());
}
return n;
@ -3410,7 +3458,7 @@ namespace pugi
{
m_lexer.next();
n = new (m_alloc) xpath_ast_node(ast_op_or, n, parse_and_expression());
n = new (m_alloc.node()) xpath_ast_node(ast_op_or, n, parse_and_expression());
}
return n;