J
Joah Senegal
Hello all,
I;m a beginner with XML. All I want is to print the XML string with tags. In
the following example, there is function called: xmlNodeGetString. This
function is getting a char* back. The result of this function is the XML
elements of the list without tags (Jaap, Kees, Kris). at the end of this
example a function xmlSaveFormatFile writes a XML file. looking like:
<?xml version="1.0"?>
<LinkedList><Element>Jaap</Element><Element>Kees</Element><Element>Kris</Element></LinkedList>
So what I want to do is writing the lines normally writting in the file on
the screen using printf. So if I do a printf I need to get something like:
<?xml version="1.0"?>
<LinkedList>
<Element>Jaap</Element>
<Element>Kees</Element>
<Element>Kris</Element>
</LinkedList>
I;ve searched for xmlfunctions for this, but I'm failing to find the right
one. Does anyone know how to get a output like above? I want do something
like this:
char *fname ;
for ( ; p ; p = p->next ) {
if (p->type == XML_ELEMENT_NODE) {
fname = (char *)SOMEXMLFUNCTION(.........) }
printf (fname);
}
In the place om SOMEXMLFUNCTION should me a xmlfunction that spits out
things like this:
<Element>Jaap</Element>
------example----
#include <iostream>
#include <libxml/parser.h>
using namespace std ;
int main() {
xmlNode *xNode ;
xmlDocPtr doc ;
doc = xmlNewDoc(BAD_CAST "1.0");
xNode = xmlNewNode(NULL, BAD_CAST "LinkedList");
xmlDocSetRootElement(doc, xNode);
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Jaap" ) ;
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Kees" ) ;
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Kris" ) ;
xmlNode * p = xNode->children ;
char *fname ;
for ( ; p ; p = p->next ) {
if (p->type == XML_ELEMENT_NODE) {
fname = (char *)xmlNodeListGetString(p->doc,
p->xmlChildrenNode, 1);
}
cout << fname << endl ;
}
xmlSaveFormatFile ("LinkedList.xml", doc, 0);
xmlFreeDoc(doc);
}
I;m a beginner with XML. All I want is to print the XML string with tags. In
the following example, there is function called: xmlNodeGetString. This
function is getting a char* back. The result of this function is the XML
elements of the list without tags (Jaap, Kees, Kris). at the end of this
example a function xmlSaveFormatFile writes a XML file. looking like:
<?xml version="1.0"?>
<LinkedList><Element>Jaap</Element><Element>Kees</Element><Element>Kris</Element></LinkedList>
So what I want to do is writing the lines normally writting in the file on
the screen using printf. So if I do a printf I need to get something like:
<?xml version="1.0"?>
<LinkedList>
<Element>Jaap</Element>
<Element>Kees</Element>
<Element>Kris</Element>
</LinkedList>
I;ve searched for xmlfunctions for this, but I'm failing to find the right
one. Does anyone know how to get a output like above? I want do something
like this:
char *fname ;
for ( ; p ; p = p->next ) {
if (p->type == XML_ELEMENT_NODE) {
fname = (char *)SOMEXMLFUNCTION(.........) }
printf (fname);
}
In the place om SOMEXMLFUNCTION should me a xmlfunction that spits out
things like this:
<Element>Jaap</Element>
------example----
#include <iostream>
#include <libxml/parser.h>
using namespace std ;
int main() {
xmlNode *xNode ;
xmlDocPtr doc ;
doc = xmlNewDoc(BAD_CAST "1.0");
xNode = xmlNewNode(NULL, BAD_CAST "LinkedList");
xmlDocSetRootElement(doc, xNode);
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Jaap" ) ;
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Kees" ) ;
xmlNewChild(xNode,NULL,(xmlChar *)"Element", (xmlChar *)"Kris" ) ;
xmlNode * p = xNode->children ;
char *fname ;
for ( ; p ; p = p->next ) {
if (p->type == XML_ELEMENT_NODE) {
fname = (char *)xmlNodeListGetString(p->doc,
p->xmlChildrenNode, 1);
}
cout << fname << endl ;
}
xmlSaveFormatFile ("LinkedList.xml", doc, 0);
xmlFreeDoc(doc);
}