mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-11-03 20:33:18 +03:00 
			
		
		
		
	Sat Aug 31 19:31:17 MDT 2002 John Fleck <jfleck@inkstain.net> * doc/tutorial/includeaddattribute.c * doc/tutorial/includeaddkeyword.c * doc/tutorial/includegetattribute.c * doc/tutorial/includekeyword.c * doc/tutorial/xmltutorial.xml * doc/tutorial/*.html update tutorial to properly free memory (thanks to Christopher R. Harris for pointing out that this needs to be done) * doc/tutorial/images/callouts/*.png added image files so the callouts are graphical, making it easier to read ( use "--param callout.graphics 1" to generate html with graphical callouts)
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
<![CDATA[
 | 
						|
#include <stdio.h>
 | 
						|
#include <string.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <libxml/xmlmemory.h>
 | 
						|
#include <libxml/parser.h>
 | 
						|
 | 
						|
 | 
						|
xmlDocPtr
 | 
						|
parseDoc(char *docname, char *uri) {
 | 
						|
 | 
						|
	xmlDocPtr doc;
 | 
						|
	xmlNodePtr cur;
 | 
						|
	xmlNodePtr newnode;
 | 
						|
	xmlAttrPtr newattr;
 | 
						|
 | 
						|
	doc = xmlParseFile(docname);
 | 
						|
	
 | 
						|
	if (doc == NULL ) {
 | 
						|
		fprintf(stderr,"Document not parsed successfully. \n");
 | 
						|
		return (NULL);
 | 
						|
	}
 | 
						|
	
 | 
						|
	cur = xmlDocGetRootElement(doc);
 | 
						|
	
 | 
						|
	if (cur == NULL) {
 | 
						|
		fprintf(stderr,"empty document\n");
 | 
						|
		xmlFreeDoc(doc);
 | 
						|
		return (NULL);
 | 
						|
	}
 | 
						|
	
 | 
						|
	if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
 | 
						|
		fprintf(stderr,"document of the wrong type, root node != story");
 | 
						|
		xmlFreeDoc(doc);
 | 
						|
		return (NULL);
 | 
						|
	}
 | 
						|
	
 | 
						|
	newnode = xmlNewTextChild (cur, NULL, "reference", NULL);
 | 
						|
	newattr = xmlNewProp (newnode, "uri", uri);
 | 
						|
	return(doc);
 | 
						|
}
 | 
						|
 | 
						|
int
 | 
						|
main(int argc, char **argv) {
 | 
						|
 | 
						|
	char *docname;
 | 
						|
	char *uri;
 | 
						|
	xmlDocPtr doc;
 | 
						|
 | 
						|
	if (argc <= 2) {
 | 
						|
		printf("Usage: %s docname, uri\n", argv[0]);
 | 
						|
		return(0);
 | 
						|
	}
 | 
						|
 | 
						|
	docname = argv[1];
 | 
						|
	uri = argv[2];
 | 
						|
	doc = parseDoc (docname, uri);
 | 
						|
	if (doc != NULL) {
 | 
						|
		xmlSaveFormatFile (docname, doc, 1);
 | 
						|
		xmlFreeDoc(doc);
 | 
						|
	}
 | 
						|
	return (1);
 | 
						|
}
 | 
						|
]]>
 |