---
id: txmlnode
title: TxmlNode
sidebar_label: TxmlNode
---
An XML Node.
## Methods
### `Method GetParent:TxmlNode()`
Gets the parent.
#### Returns
The parent to this object.
### `Method addChild:TxmlNode(name:String, content:String = Null)`
Creates a new child element.
Added at the end of child nodes list.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Local doc:TxmlDoc = TxmlDoc.parseFile("attributes.xml")
If doc Then
Local node:TxmlNode = TxmlNode(doc.getRootElement().getFirstChild())
node.addChild("ID", "C0122200")
doc.savefile("-")
End If
```
### `Method addNextSibling(node:TxmlNode)`
Adds a new node node as the next sibling.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Local doc:TxmlDoc = TxmlDoc.parseFile("attributes.xml")
If doc Then
Local node:TxmlNode = TxmlNode(doc.getRootElement().getFirstChild())
' a new node for the document
Local newNode:TxmlNode = TxmlNode.newNode("cd")
newNode.addAttribute("title", "Together Alone")
newNode.addAttribute("artist", "Crowded House")
newNode.addChild("country", "NZ")
' add new node to document as sibling of node.
node.addNextSibling(newNode)
' output the document to stdout
doc.saveFile("-")
End If
```
### `Method addPreviousSibling(node:TxmlNode)`
Adds a new node node as the previous sibling.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Local doc:TxmlDoc = TxmlDoc.parseFile("attributes.xml")
If doc Then
Local node:TxmlNode = TxmlNode(doc.getRootElement().getFirstChild())
' a new node for the document
Local newNode:TxmlNode = TxmlNode.newNode("cd")
newNode.addAttribute("title", "This is the Sea")
newNode.addAttribute("artist", "Waterboys")
newNode.addChild("country", "UK")
' add new node to document as previous sibling of node.
node.addPreviousSibling(newNode)
' output the document to stdout
doc.saveFile("-")
End If
```
### `Method addContent(content:String)`
Appends the extra substring to the node content.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Import brl.standardio
Local doc:TxmlDoc = TxmlDoc.parseFile("attributes.xml")
If doc Then
Local node:TxmlNode = TxmlNode(doc.getRootElement().getFirstChild())
Local desc:TxmlNode = node.addChild("description")
desc.addContent("Some of the songs on this CD are awesome.~n")
desc.addContent("Tracks 5 & 6 put this CD up there...")
doc.savefile("-")
End If
```
### `Method setContent(content:String)`
Replaces the content of a node.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import BRL.StandardIO
Local doc:TxmlDoc = TxmlDoc.newDoc("1.0")
If doc Then
Local root:TxmlNode = TxmlNode.newNode("root")
doc.setRootElement(root)
' create a new empty node
Local node:TxmlNode = root.addChild("node")
Print node.toString()
' set the node content
node.setContent("Some text content for the node")
Print node.toString()
' change the node content
node.setContent("Modified content!")
Print node.toString()
End If
```
### `Method setName(name:String)`
Sets (or resets) the name of the node.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import BRL.StandardIO
Local doc:TxmlDoc = TxmlDoc.newDoc("1.0")
If doc Then
Local root:TxmlNode = TxmlNode.newNode("root")
doc.setRootElement(root)
' create a new empty node
Local node:TxmlNode = root.addChild("node")
Print node.toString()
' change the node name
node.setName("branch")
Print node.toString()
End If
```
### `Method addAttribute(name:String, value:String = "")`
Creates a new attribute.
### `Method setAttribute(name:String, value:String = "")`
Sets (or resets) an attribute carried by the node.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import BRL.StandardIO
Local doc:TxmlDoc = TxmlDoc.newDoc("1.0")
If doc Then
Local root:TxmlNode = TxmlNode.newNode("root")
doc.setRootElement(root)
' create a new empty node
Local node:TxmlNode = root.addChild("node")
Print node.toString()
' set an attribute
node.setAttribute("attr1", "a value")
Print node.toString()
' change the attribute value
node.setAttribute("attr1", "a new value")
Print node.toString()
End If
```
### `Method getAttribute:String(name:String)`
Provides the value of the attribute with the specified qualified name.
### `Method getAttributeList:TList()`
Returns the list of node attributes.
#### Returns
The list of attributes.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Import brl.standardio
Local docname:String = "attributes.xml"
Local doc:TxmlDoc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
For Local node:TxmlNode = EachIn root.getChildren()
Print node.getName() + " : "
For Local attribute:TxmlAttribute = EachIn node.getAttributeList()
Print " " + attribute.getName() + " : " + attribute.getValue()
Next
Print ""
Next
End If
```
### `Method unsetAttribute(name:String)`
Remove an attribute carried by the node.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import BRL.StandardIO
Local doc:TxmlDoc = TxmlDoc.newDoc("1.0")
If doc Then
Local root:TxmlNode = TxmlNode.newNode("root")
doc.setRootElement(root)
' create a new empty node
Local node:TxmlNode = root.addChild("node")
Print node.toString()
' add some attributes
node.setAttribute("attr1", "Attribute value")
node.setAttribute("attr2", "Another value")
Print node.toString()
' remove an attribute
node.unsetAttribute("attr1")
Print node.toString()
End If
```
### `Method hasAttribute:Int(name:String)`
Search an attribute associated to the node
#### Returns
[True](../../../brl/brl.blitz/#true) if the attribute exists, or [False](../../../brl/brl.blitz/#false) otherwise.
### `Method getChildren:TList()`
Returns a list of child nodes.
### `Method getFirstChild:TxmlBase()`
Gets the first child.
#### Returns
The first child or Null if none.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Import brl.standardio
Local docname:String = "sample.xml"
Local doc:TxmlDoc
doc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
Print "First child is - " + root.getFirstChild().getName()
End If
```
### `Method getLastChild:TxmlBase()`
Gets the last child.
#### Returns
The last child or Null if none.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Import brl.standardio
Local docname:String = "sample.xml"
Local doc:TxmlDoc
doc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
Print "Last child is - " + root.getLastChild().getName()
End If
```
### `Method nextSibling:TxmlNode()`
Get the next sibling node
#### Returns
The next node or Null if there are none.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import brl.standardio
Local docname:String = "sample.xml"
Local doc:TxmlDoc
doc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
Local node:TxmlNode = TxmlNode(root.getFirstChild())
Print "Next sibling is - " + node.nextSibling().getName()
End If
```
### `Method previousSibling:TxmlNode()`
Get the previous sibling node
#### Returns
The previous node or Null if there are none.
#### Example
```blitzmax
SuperStrict
Framework text.xml
Import brl.standardio
Local docname:String = "sample.xml"
Local doc:TxmlDoc
doc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
Local node:TxmlNode = TxmlNode(root.getLastChild())
Print "Previous sibling is - " + node.previousSibling().getName()
End If
```
### `Method getContent:String()`
Reads the value of a node.
#### Returns
The node content.
### `Method getContent:TStringBuilder(sb:TStringBuilder)`
Reads the value of a node, optionally appending to an existing [TStringBuilder](../../../brl/brl.stringbuilder/tstringbuilder).
#### Returns
The node content as a [TStringBuilder](../../../brl/brl.stringbuilder/tstringbuilder).
### `Method findElement:TxmlNode(element:String = "", attr:String = "", value:String = "", descend:Int=MXML_DESCEND)`
Finds an element of the given element name, attribute or attribute/value.
#### Returns
A node or Null if no match was found.
#### Example
```blitzmax
SuperStrict
Framework Text.xml
Import brl.standardio
Local docname:String = "sample.xml"
Local doc:TxmlDoc
doc = TxmlDoc.parseFile(docname)
If doc Then
Local root:TxmlNode = doc.getRootElement()
Local node:TxmlNode = root.findElement("author")
If node Then
Print node.ToString()
End If
End If
```
### `Method Free()`
Frees a node and all of its children.
## Functions
### `Function newNode:TxmlNode(name:String)`
Creates a new node element.
#### Example
```blitzmax
Framework text.xml
Import brl.standardio
Local doc:TxmlDoc = TxmlDoc.newDoc("1.0")
If doc Then
' create a new node, initially not attached to the document
Local root:TxmlNode = TxmlNode.newNode("root")
' set the node as the document root node
doc.setRootElement(root)
' output the document to stdout
doc.saveFile("-")
End If
```