$15 GRAYBYTE WORDPRESS FILE MANAGER $36

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/opt/alt/libxml2/usr/share/doc/alt-libxml2-devel/tutorial/

HOME
Current File : /opt/alt/libxml2/usr/share/doc/alt-libxml2-devel/tutorial//ar01s04.html
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retrieving Element Content</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="ar01s03.html" title="Parsing the file"><link rel="next" href="ar01s05.html" title="Using XPath to Retrieve Element Content"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retrieving Element Content</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="ar01s05.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xmltutorialgettext"></a>Retrieving Element Content</h2></div></div><div></div></div><p><a class="indexterm" name="id2525439"></a>
Retrieving the content of an element involves traversing the document
    tree until you find what you are looking for. In this case, we are looking
    for an element called "keyword" contained within element called "story". The
    process to find the node we are interested in involves tediously walking the
    tree. We assume you already have an xmlDocPtr called <tt class="varname">doc</tt>
    and an xmlNodPtr called <tt class="varname">cur</tt>.</p><p>
      </p><pre class="programlisting">
	<a name="getchildnode"></a><img src="images/callouts/1.png" alt="1" border="0">cur = cur-&gt;xmlChildrenNode;
	<a name="huntstoryinfo"></a><img src="images/callouts/2.png" alt="2" border="0">while (cur != NULL) {
		if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"storyinfo"))){
			parseStory (doc, cur);
		}
		 
	cur = cur-&gt;next;
	}
      </pre><p>

      </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#getchildnode"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Get the first child node of <tt class="varname">cur</tt>. At this
	    point, <tt class="varname">cur</tt> points at the document root, which is
	    the element "story".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#huntstoryinfo"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>This loop iterates through the elements that are children of
	  "story", looking for one called "storyinfo". That
	  is the element that will contain the "keywords" we are
	    looking for. It uses the <span class="application">libxml</span> string
	  comparison
	    function, <tt class="function"><a href="https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-parser.html#XMLSTRCMP" target="_top">xmlStrcmp</a></tt>. If there is a match, it calls the function <tt class="function">parseStory</tt>.</p></td></tr></table></div><p>
    </p><p>
      </p><pre class="programlisting">
void
parseStory (xmlDocPtr doc, xmlNodePtr cur) {

	xmlChar *key;
	<a name="anothergetchild"></a><img src="images/callouts/1.png" alt="1" border="0"> cur = cur-&gt;xmlChildrenNode;
	<a name="findkeyword"></a><img src="images/callouts/2.png" alt="2" border="0"> while (cur != NULL) {
	    if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"keyword"))) {
	<a name="foundkeyword"></a><img src="images/callouts/3.png" alt="3" border="0">	    key = xmlNodeListGetString(doc, cur-&gt;xmlChildrenNode, 1);
		    printf("keyword: %s\n", key);
		    xmlFree(key);
 	    }
	cur = cur-&gt;next;
	}
    return;
}
      </pre><p>
      </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a href="#anothergetchild"><img src="images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>Again we get the first child node.</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#findkeyword"><img src="images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Like the loop above, we then iterate through the nodes, looking
	  for one that matches the element we're interested in, in this case
	  "keyword".</p></td></tr><tr><td width="5%" valign="top" align="left"><a href="#foundkeyword"><img src="images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>When we find the "keyword" element, we need to print
	    its contents. Remember that in <span class="acronym">XML</span>, the text
	    contained within an element is a child node of that element, so we
	    turn to <tt class="varname">cur-&gt;xmlChildrenNode</tt>. To retrieve it, we
	    use the function <tt class="function"><a href="https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-tree.html#XMLNODELISTGETSTRING" target="_top">xmlNodeListGetString</a></tt>, which also takes the <tt class="varname">doc</tt> pointer as an argument. In this case, we just print it out.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p>Because <tt class="function">xmlNodeListGetString</tt> allocates
	      memory for the string it returns, you must use
	      <tt class="function">xmlFree</tt> to free it.</p></td></tr></table></div></td></tr></table></div><p>
    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ar01s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Parsing the file�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�Using XPath to Retrieve Element Content</td></tr></table></div></body></html>


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Apr 2025 8.34 AM
root / root
0755
images
--
1 Apr 2025 8.34 AM
root / root
0755
apa.html
2.064 KB
26 Jun 2020 12.29 PM
root / root
0644
apb.html
1.979 KB
26 Jun 2020 12.29 PM
root / root
0644
apc.html
3.021 KB
26 Jun 2020 12.29 PM
root / root
0644
apd.html
3.156 KB
26 Jun 2020 12.29 PM
root / root
0644
ape.html
3.023 KB
26 Jun 2020 12.29 PM
root / root
0644
apf.html
2.88 KB
26 Jun 2020 12.29 PM
root / root
0644
apg.html
2.951 KB
26 Jun 2020 12.29 PM
root / root
0644
aph.html
3.516 KB
26 Jun 2020 12.29 PM
root / root
0644
api.html
1.854 KB
26 Jun 2020 12.29 PM
root / root
0644
ar01s02.html
3.424 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s03.html
5.584 KB
26 Jun 2020 12.29 PM
root / root
0644
ar01s04.html
6.136 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s05.html
7.277 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s06.html
3.788 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s07.html
3.805 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s08.html
3.832 KB
7 Apr 2022 4.55 PM
root / root
0644
ar01s09.html
7.425 KB
26 Jun 2020 12.29 PM
root / root
0644
includeaddattribute.c
1.109 KB
26 Jun 2020 12.29 PM
root / root
0644
includeaddkeyword.c
1.289 KB
26 Jun 2020 12.29 PM
root / root
0644
includeconvert.c
1.766 KB
26 Jun 2020 12.29 PM
root / root
0644
includegetattribute.c
1.144 KB
26 Jun 2020 12.29 PM
root / root
0644
includekeyword.c
1.319 KB
26 Jun 2020 12.29 PM
root / root
0644
includexpath.c
1.456 KB
26 Jun 2020 12.29 PM
root / root
0644
index.html
5.831 KB
7 Apr 2022 4.55 PM
root / root
0644
ix01.html
2.485 KB
26 Jun 2020 12.29 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF