rewrote README with better information
This commit is contained in:
		
							parent
							
								
									4246be06b8
								
							
						
					
					
						commit
						dcae3f9bff
					
				
					 1 changed files with 47 additions and 18 deletions
				
			
		
							
								
								
									
										65
									
								
								README
									
										
									
									
									
								
							
							
						
						
									
										65
									
								
								README
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -8,27 +8,11 @@
 | 
			
		|||
 Nodes now simply become collections and don't require you to read them in the
 | 
			
		||||
 order in which the xml.Parser finds them.
 | 
			
		||||
 | 
			
		||||
 xmlx.Document implements both these interfaces:
 | 
			
		||||
 
 | 
			
		||||
	type ILoader interface {
 | 
			
		||||
		LoadFile(string) os.Error;
 | 
			
		||||
		LoadString(string) os.Error;
 | 
			
		||||
		LoadStream(*io.Reader) os.Error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	type ISaver interface {
 | 
			
		||||
		SaveFile(string) os.Error;
 | 
			
		||||
		SaveString(string) (string, os.Error);
 | 
			
		||||
		SaveStream(*io.Writer) os.Error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 This allows you to load/save xml data to and from pretty much any source.
 | 
			
		||||
 | 
			
		||||
 The Document currently implements 2 simple search functions which allow you to
 | 
			
		||||
 look for specific nodes.
 | 
			
		||||
 
 | 
			
		||||
   Document.SelectNode(namespace, name string) *Node;
 | 
			
		||||
   Document.SelectNodes(namespace, name string) []*Node;
 | 
			
		||||
   *document.SelectNode(namespace, name string) *Node;
 | 
			
		||||
   *document.SelectNodes(namespace, name string) []*Node;
 | 
			
		||||
 
 | 
			
		||||
 SelectNode() returns the first, single node it finds matching the given name
 | 
			
		||||
 and namespace. SelectNodes() returns a slice containing all the matching nodes.
 | 
			
		||||
| 
						 | 
				
			
			@ -36,3 +20,48 @@
 | 
			
		|||
 Note that these search functions can be invoked on individual nodes as well.
 | 
			
		||||
 This allows you to search only a subset of the entire document.
 | 
			
		||||
 | 
			
		||||
 Each node exposes also a number of functions which allow easy access to a node
 | 
			
		||||
 value or an attribute value. They come in various forms to allow transparent
 | 
			
		||||
 conversion to types like int, int64, float, float32, float64, etc:
 | 
			
		||||
 | 
			
		||||
   *node.GetValue(ns, name string) string;
 | 
			
		||||
   *node.GetValuei(ns, name string) int;
 | 
			
		||||
   *node.GetValuei64(ns, name string) int64;
 | 
			
		||||
   *node.GetValuef(ns, name string) float;
 | 
			
		||||
   *node.GetValuef32(ns, name string) float32;
 | 
			
		||||
   *node.GetValuef64(ns, name string) float64;
 | 
			
		||||
 | 
			
		||||
 Note that the GetValue() functions actually consider child nodes for matching 
 | 
			
		||||
 names as well as the current node. In effect they first perform a 
 | 
			
		||||
 node.SelectNode() and then return the value of the resulting node converted to
 | 
			
		||||
 the appripriate type. This allows you to do this:
 | 
			
		||||
 | 
			
		||||
    Consider this piece of xml:
 | 
			
		||||
      <car>
 | 
			
		||||
        <color>red</color>
 | 
			
		||||
        <brand>BMW</brand>
 | 
			
		||||
      </car>
 | 
			
		||||
 | 
			
		||||
    Now this code:
 | 
			
		||||
      node := doc.SelectNode("", "car");
 | 
			
		||||
      brand := node.GetValue("", "brand");
 | 
			
		||||
 | 
			
		||||
    Eventhough 'brand' is not the name of @node, we still get the right value
 | 
			
		||||
    back (BMW), because GetValue searches through the child nodes when looking
 | 
			
		||||
    for the value if the current node does not match the given namespace and
 | 
			
		||||
    name.
 | 
			
		||||
 | 
			
		||||
 For attributes, we only go through the attributes of the current node this
 | 
			
		||||
 function is invoked on:
 | 
			
		||||
 | 
			
		||||
   *node.GetAttr(ns, name string) string;
 | 
			
		||||
   *node.GetAttri(ns, name string) int;
 | 
			
		||||
   *node.GetAttri64(ns, name string) int64;
 | 
			
		||||
   *node.GetAttrf(ns, name string) float;
 | 
			
		||||
   *node.GetAttrf32(ns, name string) float32;
 | 
			
		||||
   *node.GetAttrf64(ns, name string) float64;
 | 
			
		||||
 | 
			
		||||
 All of these functions return either "" or 0 when the specified node or
 | 
			
		||||
 attribute could not be found. No errors are generated.
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue