---
product: Chilkat
product_version: 11.7.0
language: ckpython
language_label: CkPython
class: Xml
class_name: CkXml
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/pythonCkXmlRef.html
---
# Chilkat Xml — CkPython — v11.7.0

> Chilkat 11.7.0 · language=ckpython · class=Xml (CkXml)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/Xml.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/guide.md`.

## Purpose

**Load, navigate, search, edit, transform, and save in-memory XML trees.**

`Chilkat.Xml` is the primary Chilkat class for in-memory XML tree manipulation. It supports loading and saving XML, navigating between elements, reading and writing text content, managing attributes, working with namespaces, adding and removing subtrees, searching by tag, content, or attribute, sorting child records, scrubbing XML, handling CDATA and XML declarations, storing binary data as Base64, and optionally compressing or encrypting element content.

**Load and save XML**

Load XML from strings, files, byte data, or other Chilkat objects, then save or emit formatted XML when processing is complete.

**Navigate XML trees**

Move through parent, child, sibling, and selected elements while working directly with the XML document structure.

**Edit elements and attributes**

Add, update, remove, or rename elements; set text content; and read, add, modify, or delete attributes.

**Search and select**

Locate elements by tag name, content, path, attribute value, or custom search patterns.

**Namespaces and structure**

Work with namespace-aware XML, declarations, CDATA, child ordering, sorting, and subtree insertion or removal.

**Binary and protected content**

Store binary data as Base64 and optionally compress or encrypt element content when XML carries encoded payloads.

**Important usage distinction:** Some methods return a new `Xml` object reference for the selected element, while methods ending in `2` update the caller's internal reference to point to a different element. This distinction is central when navigating and editing XML trees because it determines whether the current object stays where it is or moves to another element.

**Common pattern:** Load or create the XML document, navigate to the element of interest, read or modify content and attributes, add or remove child elements as needed, then save the updated XML. Use `Chilkat.Xml` for tree-oriented XML manipulation, and use `Chilkat.XmlDSig`, `Chilkat.XmlDSigGen`, or related classes when the task is XML digital signing or signature verification.

For an extended overview, see [Xml Class Overview](https://www.chilkatsoft.com/xml_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```python
obj = chilkat.CkXml()
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in CkPython.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `# strVal is a string # ckStr is a CkString xml.get_DebugLogFilePath(ckStr); strVal = xml.debugLogFilePath(); xml.put_DebugLogFilePath(strVal);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `# strVal is a string # ckStr is a CkString xml.get_LastErrorHtml(ckStr); strVal = xml.lastErrorHtml();` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `# strVal is a string # ckStr is a CkString xml.get_LastErrorText(ckStr); strVal = xml.lastErrorText();` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `# strVal is a string # ckStr is a CkString xml.get_LastErrorXml(ckStr); strVal = xml.lastErrorXml();` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `# boolVal is a boolean boolVal = xml.get_LastMethodSuccess(); xml.put_LastMethodSuccess(boolVal);` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `Utf8` | `# boolVal is a boolean boolVal = xml.get_Utf8(); xml.put_Utf8(boolVal);` | read/write | When set to `True`, all `string` arguments and return values are interpreted as UTF-8 strings. |
| `VerboseLogging` | `# boolVal is a boolean boolVal = xml.get_VerboseLogging(); xml.put_VerboseLogging(boolVal);` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `# strVal is a string # ckStr is a CkString xml.get_Version(ckStr); strVal = xml.version();` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Cdata` | property, read/write | `# boolVal is a boolean boolVal = xml.get_Cdata(); xml.put_Cdata(boolVal);` |
| `Content` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_Content(ckStr); strVal = xml.content(); xml.put_Content(strVal);` |
| `ContentInt` | property, read/write | `# intVal is an integer intVal = xml.get_ContentInt(); xml.put_ContentInt(intVal);` |
| `DocType` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_DocType(ckStr); strVal = xml.docType(); xml.put_DocType(strVal);` |
| `EmitBom` | property, read/write | `# boolVal is a boolean boolVal = xml.get_EmitBom(); xml.put_EmitBom(boolVal);` |
| `EmitCompact` | property, read/write | `# boolVal is a boolean boolVal = xml.get_EmitCompact(); xml.put_EmitCompact(boolVal);` |
| `EmitXmlDecl` | property, read/write | `# boolVal is a boolean boolVal = xml.get_EmitXmlDecl(); xml.put_EmitXmlDecl(boolVal);` |
| `Encoding` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_Encoding(ckStr); strVal = xml.encoding(); xml.put_Encoding(strVal);` |
| `I` | property, read/write | `# intVal is an integer intVal = xml.get_I(); xml.put_I(intVal);` |
| `IsBase64` | property, read-only | `# boolVal is a boolean boolVal = xml.get_IsBase64();` |
| `J` | property, read/write | `# intVal is an integer intVal = xml.get_J(); xml.put_J(intVal);` |
| `K` | property, read/write | `# intVal is an integer intVal = xml.get_K(); xml.put_K(intVal);` |
| `NumAttributes` | property, read-only | `# intVal is an integer intVal = xml.get_NumAttributes();` |
| `NumChildren` | property, read-only | `# intVal is an integer intVal = xml.get_NumChildren();` |
| `SortCaseInsensitive` | property, read/write | `# boolVal is a boolean boolVal = xml.get_SortCaseInsensitive(); xml.put_SortCaseInsensitive(boolVal);` |
| `Standalone` | property, read/write | `# boolVal is a boolean boolVal = xml.get_Standalone(); xml.put_Standalone(boolVal);` |
| `Strict` | property, read/write | `# boolVal is a boolean boolVal = xml.get_Strict(); xml.put_Strict(boolVal);` |
| `Tag` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_Tag(ckStr); strVal = xml.tag(); xml.put_Tag(strVal);` |
| `TagNsPrefix` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_TagNsPrefix(ckStr); strVal = xml.tagNsPrefix(); xml.put_TagNsPrefix(strVal);` |
| `TagPath` | property, read-only | `# strVal is a string # ckStr is a CkString xml.get_TagPath(ckStr); strVal = xml.tagPath();` |
| `TagUnprefixed` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_TagUnprefixed(ckStr); strVal = xml.tagUnprefixed(); xml.put_TagUnprefixed(strVal);` |
| `TreeId` | property, read-only | `# intVal is an integer intVal = xml.get_TreeId();` |
| `UncommonOptions` | property, read/write | `# strVal is a string # ckStr is a CkString xml.get_UncommonOptions(ckStr); strVal = xml.uncommonOptions(); xml.put_UncommonOptions(strVal);` |
| `AccumulateTagContent` | method | `# tag is a string # skipTags is a string # outStr is a CkString (output) status = xml.AccumulateTagContent(tag, skipTags, outStr); retStr = xml.accumulateTagContent(tag, skipTags);` |
| `AddAttribute` | method | `# name is a string # value is a string status = xml.AddAttribute(name, value);` |
| `AddAttributeInt` | method | `# name is a string # value is an integer status = xml.AddAttributeInt(name, value);` |
| `AddChildTree` | method | `# tree is a CkXml status = xml.AddChildTree(tree);` |
| `AddOrUpdateAttribute` | method | `# name is a string # value is a string xml.AddOrUpdateAttribute(name, value);` |
| `AddOrUpdateAttributeI` | method | `# name is a string # value is an integer xml.AddOrUpdateAttributeI(name, value);` |
| `AddStyleSheet` | method | `# styleSheet is a string xml.AddStyleSheet(styleSheet);` |
| `AddToAttribute` | method | `# name is a string # amount is an integer xml.AddToAttribute(name, amount);` |
| `AddToChildContent` | method | `# tag is a string # amount is an integer xml.AddToChildContent(tag, amount);` |
| `AddToContent` | method | `# amount is an integer xml.AddToContent(amount);` |
| `AppendToContent` | method | `# str is a string status = xml.AppendToContent(str);` |
| `ChildContentMatches` | method | `# tagPath is a string # pattern is a string # caseSensitive is a boolean retBool = xml.ChildContentMatches(tagPath, pattern, caseSensitive);` |
| `ChilkatPath` | method | `# pathCmd is a string # outStr is a CkString (output) status = xml.ChilkatPath(pathCmd, outStr); retStr = xml.chilkatPath(pathCmd);` |
| `Clear` | method | `xml.Clear();` |
| `ContentMatches` | method | `# pattern is a string # caseSensitive is a boolean retBool = xml.ContentMatches(pattern, caseSensitive);` |
| `Copy` | method | `# node is a CkXml xml.Copy(node);` |
| `CopyRef` | method | `# copyFromNode is a CkXml xml.CopyRef(copyFromNode);` |
| `DecodeEntities` | method | `# str is a string # outStr is a CkString (output) status = xml.DecodeEntities(str, outStr); retStr = xml.decodeEntities(str);` |
| `DecryptContent` | method | `# password is a string status = xml.DecryptContent(password);` |
| `EncryptContent` | method | `# password is a string status = xml.EncryptContent(password);` |
| `ExtractChildByIndex` | method | `# returns a CkXml # index is an integer ret_xml = xml.ExtractChildByIndex(index);` |
| `ExtractChildByName` | method | `# returns a CkXml # tagPath is a string # attrName is a string # attrValue is a string ret_xml = xml.ExtractChildByName(tagPath, attrName, attrValue);` |
| `FindChild` | method | `# returns a CkXml # tagPath is a string ret_xml = xml.FindChild(tagPath);` |
| `FindChild2` | method | `# tagPath is a string status = xml.FindChild2(tagPath);` |
| `FindNextRecord` | method | `# returns a CkXml # tagPath is a string # contentPattern is a string ret_xml = xml.FindNextRecord(tagPath, contentPattern);` |
| `FindOrAddNewChild` | method | `# returns a CkXml # tagPath is a string ret_xml = xml.FindOrAddNewChild(tagPath);` |
| `FirstChild` | method | `# returns a CkXml ret_xml = xml.FirstChild();` |
| `FirstChild2` | method | `status = xml.FirstChild2();` |
| `GetAttributeName` | method | `# index is an integer # outStr is a CkString (output) status = xml.GetAttributeName(index, outStr); retStr = xml.getAttributeName(index);` |
| `GetAttributeValue` | method | `# index is an integer # outStr is a CkString (output) status = xml.GetAttributeValue(index, outStr); retStr = xml.getAttributeValue(index);` |
| `GetAttributeValueInt` | method | `# index is an integer retInt = xml.GetAttributeValueInt(index);` |
| `GetAttrValue` | method | `# name is a string # outStr is a CkString (output) status = xml.GetAttrValue(name, outStr); retStr = xml.getAttrValue(name);` |
| `GetAttrValueInt` | method | `# name is a string retInt = xml.GetAttrValueInt(name);` |
| `GetChild` | method | `# returns a CkXml # index is an integer ret_xml = xml.GetChild(index);` |
| `GetChild2` | method | `# index is an integer status = xml.GetChild2(index);` |
| `GetChildAttrValue` | method | `# tagPath is a string # attrName is a string # outStr is a CkString (output) status = xml.GetChildAttrValue(tagPath, attrName, outStr); retStr = xml.getChildAttrValue(tagPath, attrName);` |
| `GetChildBoolValue` | method | `# tagPath is a string retBool = xml.GetChildBoolValue(tagPath);` |
| `GetChildContent` | method | `# tagPath is a string # outStr is a CkString (output) status = xml.GetChildContent(tagPath, outStr); retStr = xml.getChildContent(tagPath);` |
| `GetChildContentByIndex` | method | `# index is an integer # outStr is a CkString (output) status = xml.GetChildContentByIndex(index, outStr); retStr = xml.getChildContentByIndex(index);` |
| `GetChildContentSb` | method | `# tagPath is a string # sb is a CkStringBuilder status = xml.GetChildContentSb(tagPath, sb);` |
| `GetChildExact` | method | `# returns a CkXml # tag is a string # content is a string ret_xml = xml.GetChildExact(tag, content);` |
| `GetChildIntValue` | method | `# tagPath is a string retInt = xml.GetChildIntValue(tagPath);` |
| `GetChildTag` | method | `# index is an integer # outStr is a CkString (output) status = xml.GetChildTag(index, outStr); retStr = xml.getChildTag(index);` |
| `GetChildTagByIndex` | method | `# index is an integer # outStr is a CkString (output) status = xml.GetChildTagByIndex(index, outStr); retStr = xml.getChildTagByIndex(index);` |
| `GetChildWithAttr` | method | `# returns a CkXml # tagPath is a string # attrName is a string # attrValue is a string ret_xml = xml.GetChildWithAttr(tagPath, attrName, attrValue);` |
| `GetChildWithContent` | method | `# returns a CkXml # content is a string ret_xml = xml.GetChildWithContent(content);` |
| `GetChildWithTag` | method | `# returns a CkXml # tagPath is a string ret_xml = xml.GetChildWithTag(tagPath);` |
| `GetChildWithTag2` | method | `# tagPath is a string status = xml.GetChildWithTag2(tagPath);` |
| `GetNthChildWithTag` | method | `# returns a CkXml # tag is a string # n is an integer ret_xml = xml.GetNthChildWithTag(tag, n);` |
| `GetNthChildWithTag2` | method | `# tag is a string # n is an integer status = xml.GetNthChildWithTag2(tag, n);` |
| `GetParent` | method | `# returns a CkXml ret_xml = xml.GetParent();` |
| `GetParent2` | method | `status = xml.GetParent2();` |
| `GetRoot` | method | `# returns a CkXml ret_xml = xml.GetRoot();` |
| `GetRoot2` | method | `xml.GetRoot2();` |
| `GetSelf` | method | `# returns a CkXml ret_xml = xml.GetSelf();` |
| `GetXml` | method | `# outStr is a CkString (output) status = xml.GetXml(outStr); retStr = xml.getXml();` |
| `GetXmlBd` | method | `# bd is a CkBinData status = xml.GetXmlBd(bd);` |
| `GetXmlSb` | method | `# sb is a CkStringBuilder status = xml.GetXmlSb(sb);` |
| `HasAttribute` | method | `# name is a string retBool = xml.HasAttribute(name);` |
| `HasAttrWithValue` | method | `# name is a string # value is a string retBool = xml.HasAttrWithValue(name, value);` |
| `HasChildWithContent` | method | `# content is a string retBool = xml.HasChildWithContent(content);` |
| `HasChildWithTag` | method | `# tagPath is a string retBool = xml.HasChildWithTag(tagPath);` |
| `HasChildWithTagAndContent` | method | `# tagPath is a string # content is a string retBool = xml.HasChildWithTagAndContent(tagPath, content);` |
| `InsertChildTreeAfter` | method | `# index is an integer # tree is a CkXml xml.InsertChildTreeAfter(index, tree);` |
| `InsertChildTreeBefore` | method | `# index is an integer # tree is a CkXml xml.InsertChildTreeBefore(index, tree);` |
| `LastChild` | method | `# returns a CkXml ret_xml = xml.LastChild();` |
| `LastChild2` | method | `status = xml.LastChild2();` |
| `LoadBd` | method | `# bd is a CkBinData # autoTrim is a boolean status = xml.LoadBd(bd, autoTrim);` |
| `LoadSb` | method | `# sb is a CkStringBuilder # autoTrim is a boolean status = xml.LoadSb(sb, autoTrim);` |
| `LoadXml` | method | `# xmlData is a string status = xml.LoadXml(xmlData);` |
| `LoadXml2` | method | `# xmlData is a string # autoTrim is a boolean status = xml.LoadXml2(xmlData, autoTrim);` |
| `LoadXmlFile` | method | `# fileName is a string status = xml.LoadXmlFile(fileName);` |
| `LoadXmlFile2` | method | `# fileName is a string # autoTrim is a boolean status = xml.LoadXmlFile2(fileName, autoTrim);` |
| `NewChild` | method | `# returns a CkXml # tagPath is a string # content is a string ret_xml = xml.NewChild(tagPath, content);` |
| `NewChild2` | method | `# tagPath is a string # content is a string xml.NewChild2(tagPath, content);` |
| `NewChildAfter` | method | `# returns a CkXml # index is an integer # tag is a string # content is a string ret_xml = xml.NewChildAfter(index, tag, content);` |
| `NewChildBefore` | method | `# returns a CkXml # index is an integer # tag is a string # content is a string ret_xml = xml.NewChildBefore(index, tag, content);` |
| `NewChildInt2` | method | `# tagPath is a string # value is an integer xml.NewChildInt2(tagPath, value);` |
| `NextInTraversal2` | method | `# sbState is a CkStringBuilder retBool = xml.NextInTraversal2(sbState);` |
| `NextSibling` | method | `# returns a CkXml ret_xml = xml.NextSibling();` |
| `NextSibling2` | method | `status = xml.NextSibling2();` |
| `NumChildrenAt` | method | `# tagPath is a string retInt = xml.NumChildrenAt(tagPath);` |
| `NumChildrenHavingTag` | method | `# tag is a string retInt = xml.NumChildrenHavingTag(tag);` |
| `PreviousSibling` | method | `# returns a CkXml ret_xml = xml.PreviousSibling();` |
| `PreviousSibling2` | method | `status = xml.PreviousSibling2();` |
| `PruneAttribute` | method | `# attrName is a string retInt = xml.PruneAttribute(attrName);` |
| `PruneTag` | method | `# tag is a string retInt = xml.PruneTag(tag);` |
| `RemoveAllAttributes` | method | `status = xml.RemoveAllAttributes();` |
| `RemoveAllChildren` | method | `xml.RemoveAllChildren();` |
| `RemoveAttribute` | method | `# name is a string status = xml.RemoveAttribute(name);` |
| `RemoveChild` | method | `# tagPath is a string xml.RemoveChild(tagPath);` |
| `RemoveChildByIndex` | method | `# index is an integer xml.RemoveChildByIndex(index);` |
| `RemoveChildWithContent` | method | `# content is a string xml.RemoveChildWithContent(content);` |
| `RemoveFromTree` | method | `xml.RemoveFromTree();` |
| `RemoveStyleSheet` | method | `# attrName is a string # attrValue is a string retInt = xml.RemoveStyleSheet(attrName, attrValue);` |
| `SaveBinaryContent` | method | `# filename is a string # unzipFlag is a boolean # decryptFlag is a boolean # password is a string status = xml.SaveBinaryContent(filename, unzipFlag, decryptFlag, password);` |
| `SaveXml` | method | `# fileName is a string status = xml.SaveXml(fileName);` |
| `Scrub` | method | `# directives is a string xml.Scrub(directives);` |
| `SearchAllForContent` | method | `# returns a CkXml # afterPtr is a CkXml # contentPattern is a string ret_xml = xml.SearchAllForContent(afterPtr, contentPattern);` |
| `SearchAllForContent2` | method | `# afterPtr is a CkXml # contentPattern is a string status = xml.SearchAllForContent2(afterPtr, contentPattern);` |
| `SearchForAttribute` | method | `# returns a CkXml # afterPtr is a CkXml # tag is a string # attr is a string # valuePattern is a string ret_xml = xml.SearchForAttribute(afterPtr, tag, attr, valuePattern);` |
| `SearchForAttribute2` | method | `# afterPtr is a CkXml # tag is a string # attr is a string # valuePattern is a string status = xml.SearchForAttribute2(afterPtr, tag, attr, valuePattern);` |
| `SearchForContent` | method | `# returns a CkXml # afterPtr is a CkXml # tag is a string # contentPattern is a string ret_xml = xml.SearchForContent(afterPtr, tag, contentPattern);` |
| `SearchForContent2` | method | `# afterPtr is a CkXml # tag is a string # contentPattern is a string status = xml.SearchForContent2(afterPtr, tag, contentPattern);` |
| `SearchForTag` | method | `# returns a CkXml # afterPtr is a CkXml # tag is a string ret_xml = xml.SearchForTag(afterPtr, tag);` |
| `SearchForTag2` | method | `# afterPtr is a CkXml # tag is a string status = xml.SearchForTag2(afterPtr, tag);` |
| `SetBinaryContentBd` | method | `# data is a CkBinData # zipFlag is a boolean # encryptFlag is a boolean # password is a string status = xml.SetBinaryContentBd(data, zipFlag, encryptFlag, password);` |
| `SetBinaryContentFromFile` | method | `# filename is a string # zipFlag is a boolean # encryptFlag is a boolean # password is a string status = xml.SetBinaryContentFromFile(filename, zipFlag, encryptFlag, password);` |
| `SortByAttribute` | method | `# attrName is a string # ascending is a boolean xml.SortByAttribute(attrName, ascending);` |
| `SortByAttributeInt` | method | `# attrName is a string # ascending is a boolean xml.SortByAttributeInt(attrName, ascending);` |
| `SortByContent` | method | `# ascending is a boolean xml.SortByContent(ascending);` |
| `SortByTag` | method | `# ascending is a boolean xml.SortByTag(ascending);` |
| `SortRecordsByAttribute` | method | `# sortTag is a string # attrName is a string # ascending is a boolean xml.SortRecordsByAttribute(sortTag, attrName, ascending);` |
| `SortRecordsByContent` | method | `# sortTag is a string # ascending is a boolean xml.SortRecordsByContent(sortTag, ascending);` |
| `SortRecordsByContentInt` | method | `# sortTag is a string # ascending is a boolean xml.SortRecordsByContentInt(sortTag, ascending);` |
| `SwapNode` | method | `# node is a CkXml status = xml.SwapNode(node);` |
| `SwapTree` | method | `# tree is a CkXml status = xml.SwapTree(tree);` |
| `TagContent` | method | `# tagName is a string # outStr is a CkString (output) status = xml.TagContent(tagName, outStr); retStr = xml.tagContent(tagName);` |
| `TagEquals` | method | `# tag is a string retBool = xml.TagEquals(tag);` |
| `TagIndex` | method | `# tagPath is a string retInt = xml.TagIndex(tagPath);` |
| `TagNsEquals` | method | `# ns is a string retBool = xml.TagNsEquals(ns);` |
| `TagUnpEquals` | method | `# unprefixedTag is a string retBool = xml.TagUnpEquals(unprefixedTag);` |
| `UnzipContent` | method | `status = xml.UnzipContent();` |
| `UnzipTree` | method | `status = xml.UnzipTree();` |
| `UpdateAt` | method | `# tagPath is a string # autoCreate is a boolean # value is a string status = xml.UpdateAt(tagPath, autoCreate, value);` |
| `UpdateAttrAt` | method | `# tagPath is a string # autoCreate is a boolean # attrName is a string # attrValue is a string status = xml.UpdateAttrAt(tagPath, autoCreate, attrName, attrValue);` |
| `UpdateAttribute` | method | `# attrName is a string # attrValue is a string status = xml.UpdateAttribute(attrName, attrValue);` |
| `UpdateAttributeInt` | method | `# attrName is a string # value is an integer status = xml.UpdateAttributeInt(attrName, value);` |
| `UpdateChildContent` | method | `# tagPath is a string # value is a string xml.UpdateChildContent(tagPath, value);` |
| `UpdateChildContentInt` | method | `# tagPath is a string # value is an integer xml.UpdateChildContentInt(tagPath, value);` |
| `ZipContent` | method | `status = xml.ZipContent();` |
| `ZipTree` | method | `status = xml.ZipTree();` |

Deprecated members are listed at the end of this file with their replacements; do not use them in new code.

## Properties

### Xml.Cdata

`Chilkat 11.7.0 · ckpython · Xml · Cdata · property · read/write`

```python
# boolVal is a boolean

boolVal = xml.get_Cdata();

xml.put_Cdata(boolVal);
```

Controls how this element's text content is emitted. When set to `True`, the element content is written inside a CDATA section instead of being emitted as ordinary character data with XML escaping.

**CDATA and escaping:** CDATA is useful when text contains many characters such as `<` or `&`. It does not change the logical text value of the element; it only changes how that text is represented in the serialized XML.

### Xml.Content

`Chilkat 11.7.0 · ckpython · Xml · Content · property · read/write`

```python
# strVal is a string

# ckStr is a CkString

xml.get_Content(ckStr);

strVal = xml.content();

xml.put_Content(strVal);
```

Gets or sets the text content stored directly on this XML element. Child elements are not included in this value.

For example, both of the following elements have `This is the content` as their `Content`:

```
<tag1>This is the content</tag1>

<tag2><child1>abc</child1><child2>abc</child2>This is the content</tag2>
```

**Content vs. children:** Chilkat stores an element's direct text content separately from its child elements. Use the child-navigation methods when you need the nested elements themselves.

See also:

- [Content vs. Children: A common misconception explained.](https://www.chilkatsoft.com/p/p_472.asp)

### Xml.ContentInt

`Chilkat 11.7.0 · ckpython · Xml · ContentInt · property · read/write`

```python
# intVal is an integer

intVal = xml.get_ContentInt();

xml.put_ContentInt(intVal);
```

Gets or sets this element's content as a 32-bit integer. Setting the property converts the integer to its decimal text representation; getting the property interprets the element's text content as an integer.

**Numeric content:** Use `Content` when the value may exceed the range of a 32-bit integer or when the exact lexical representation must be preserved.

### Xml.DocType

`Chilkat 11.7.0 · ckpython · Xml · DocType · property · read/write`

```python
# strVal is a string

# ckStr is a CkString

xml.get_DocType(ckStr);

strVal = xml.docType();

xml.put_DocType(strVal);
```

Gets or sets the document type declaration associated with the XML document.

The value represents the document-level `DOCTYPE` declaration, for example `<!DOCTYPE note SYSTEM "note.dtd">`.

**Document-level setting:** Although this property may be accessed from any element reference in the tree, the DOCTYPE belongs to the XML document as a whole rather than to an individual element.

### Xml.EmitBom

`Chilkat 11.7.0 · ckpython · Xml · EmitBom · property · read/write · since 9.5.0.44`

```python
# boolVal is a boolean

boolVal = xml.get_EmitBom();

xml.put_EmitBom(boolVal);
```

Controls whether a byte order mark (BOM, also called a preamble) is written when XML is saved to a file. The default is `False`.

This setting is relevant to encodings for which a BOM can be emitted, such as UTF-8 and UTF-16. It does not affect XML returned as a language string by methods such as `GetXml`.

### Xml.EmitCompact

`Chilkat 11.7.0 · ckpython · Xml · EmitCompact · property · read/write · since 9.5.0.64`

```python
# boolVal is a boolean

boolVal = xml.get_EmitCompact();

xml.put_EmitCompact(boolVal);
```

Controls whether XML emitted by `GetXml` and `GetXmlSb` is compact. When `True`, unnecessary formatting whitespace and line breaks are omitted. The default is `False` for backward compatibility.

**Formatting only:** Compact output changes presentation, not the XML tree or its element content.

### Xml.EmitXmlDecl

`Chilkat 11.7.0 · ckpython · Xml · EmitXmlDecl · property · read/write`

```python
# boolVal is a boolean

boolVal = xml.get_EmitXmlDecl();

xml.put_EmitXmlDecl(boolVal);
```

Controls whether the XML declaration is included when XML is emitted. The default is `True`. When set to `False`, output methods such as `GetXml` and `SaveXml` omit the declaration.

An XML declaration is the leading construct such as `<?xml version="1.0" encoding="utf-8"?>`.

### Xml.Encoding

`Chilkat 11.7.0 · ckpython · Xml · Encoding · property · read/write`

```python
# strVal is a string

# ckStr is a CkString

xml.get_Encoding(ckStr);

strVal = xml.encoding();

xml.put_Encoding(strVal);
```

Gets or sets the `encoding` value used in the XML declaration. The default is `utf-8`. This is a document-level setting and may be accessed from any element in the tree.

When XML is loaded, Chilkat sets this property from the encoding declared by the input XML when one is present. If no encoding is declared, the property is reset to `utf-8`.

**Important:** Changing `Encoding` changes the declared/output encoding used when XML is serialized; it does not reinterpret or transcode the already-stored Unicode text inside the in-memory tree.

### Xml.I

`Chilkat 11.7.0 · ckpython · Xml · I · property · read/write · since 9.5.0.64`

```python
# intVal is an integer

intVal = xml.get_I();

xml.put_I(intVal);
```

Provides a substitution value for `[i]` in Chilkat tag paths and `ChilkatPath` expressions. When a path contains `[i]`, the current value of this property is substituted for I.

**Loop-friendly paths:** The `I`, `J`, and `K` properties make it convenient to reuse a path expression inside nested loops without constructing a new path string for every index.

### Xml.IsBase64

`Chilkat 11.7.0 · ckpython · Xml · IsBase64 · property · read-only · since 9.5.0.76`

```python
# boolVal is a boolean

boolVal = xml.get_IsBase64();
```

Returns `True` if this element's content consists only of characters allowed in standard Base64 text, with whitespace ignored. Standard Base64 uses `A-Z`, `a-z`, `0-9`, `+`, `/`, and optional trailing `=` padding.

**Syntax check, not semantic validation:** A value can contain only Base64 characters and still not represent the data your application expects. This property is useful as a quick content-format test.

### Xml.J

`Chilkat 11.7.0 · ckpython · Xml · J · property · read/write · since 9.5.0.64`

```python
# intVal is an integer

intVal = xml.get_J();

xml.put_J(intVal);
```

Provides a substitution value for `[j]` in Chilkat tag paths and `ChilkatPath` expressions. When a path contains `[j]`, the current value of this property is substituted for J.

**Loop-friendly paths:** The `I`, `J`, and `K` properties make it convenient to reuse a path expression inside nested loops without constructing a new path string for every index.

### Xml.K

`Chilkat 11.7.0 · ckpython · Xml · K · property · read/write · since 9.5.0.64`

```python
# intVal is an integer

intVal = xml.get_K();

xml.put_K(intVal);
```

Provides a substitution value for `[k]` in Chilkat tag paths and `ChilkatPath` expressions. When a path contains `[k]`, the current value of this property is substituted for K.

**Loop-friendly paths:** The `I`, `J`, and `K` properties make it convenient to reuse a path expression inside nested loops without constructing a new path string for every index.

### Xml.NumAttributes

`Chilkat 11.7.0 · ckpython · Xml · NumAttributes · property · read-only`

```python
# intVal is an integer

intVal = xml.get_NumAttributes();
```

Returns the number of attributes on this element.

For example, `<tag attr1="value1" attr2="value2">...</tag>` has two attributes. Attribute indexes used by methods such as `GetAttributeName` and `GetAttributeValue` are zero-based.

### Xml.NumChildren

`Chilkat 11.7.0 · ckpython · Xml · NumChildren · property · read-only`

```python
# intVal is an integer

intVal = xml.get_NumChildren();
```

Returns the number of direct child elements of this element. Descendants below those children are not included in the count.

**Direct children only:** Use traversal or search methods when you need to inspect the entire subtree rather than only the immediate children.

### Xml.SortCaseInsensitive

`Chilkat 11.7.0 · ckpython · Xml · SortCaseInsensitive · property · read/write`

```python
# boolVal is a boolean

boolVal = xml.get_SortCaseInsensitive();

xml.put_SortCaseInsensitive(boolVal);
```

Controls case sensitivity for the XML sorting methods. Set to `True` for case-insensitive string comparisons or `False` for case-sensitive comparisons.

### Xml.Standalone

`Chilkat 11.7.0 · ckpython · Xml · Standalone · property · read/write`

```python
# boolVal is a boolean

boolVal = xml.get_Standalone();

xml.put_Standalone(boolVal);
```

Controls the `standalone` pseudo-attribute in the XML declaration. This is a document-level setting and may be accessed from any element in the tree.

Setting this property to `True` causes the declaration to include `standalone="yes"`.

**XML declaration:** The standalone declaration concerns whether the document relies on external markup declarations. It is metadata in the XML declaration; it does not by itself validate or alter the document.

### Xml.Strict

`Chilkat 11.7.0 · ckpython · Xml · Strict · property · read/write · since 11.6.0`

```python
# boolVal is a boolean

boolVal = xml.get_Strict();

xml.put_Strict(boolVal);
```

When `Strict` is **true**, the XML loading methods first check that the input is well-formed XML. If it is not, the load fails and the contents of this Xml object are left **unchanged**. The default is `False`.

This applies to `LoadXml`, `LoadXml2`, `LoadSb`, `LoadBd`, `LoadXmlFile` and `LoadXmlFile2`.

Chilkat's XML parser is deliberately tolerant. By default it can accept input that is not well-formed, succeed, and leave a partially populated tree. That is convenient when the goal is a best-effort parse of imperfect input, but it is the wrong behavior when a silently dropped element or attribute changes what the application does.

Set `Strict` to `True` for XML carrying configuration, credentials, signed content, or security parameters, where an element that quietly failed to load would be acted on as though it had never been present.

The check is for XML 1.0 **well-formedness** only. It is not a validating parse: no DTD or schema is read, and the document is not checked against one. Markup declarations inside an internal DTD subset are skipped rather than parsed.

**Note:** The default is `False` so that existing applications are unaffected. When a strict load is rejected, this Xml object keeps whatever it held before the call, so a failed reload never leaves the object empty.

### Xml.Tag

`Chilkat 11.7.0 · ckpython · Xml · Tag · property · read/write`

```python
# strVal is a string

# ckStr is a CkString

xml.get_Tag(ckStr);

strVal = xml.tag();

xml.put_Tag(strVal);
```

Gets or sets the element name for this element, including any namespace prefix. For example, the tag for `<soapenv:Body>` is `soapenv:Body`.

Use `TagNsPrefix` and `TagUnprefixed` when the prefix and local portion are needed separately.

### Xml.TagNsPrefix

`Chilkat 11.7.0 · ckpython · Xml · TagNsPrefix · property · read/write · since 9.5.0.77`

```python
# strVal is a string

# ckStr is a CkString

xml.get_TagNsPrefix(ckStr);

strVal = xml.tagNsPrefix();

xml.put_TagNsPrefix(strVal);
```

Gets or sets the namespace prefix portion of this element's tag. For `soapenv:Envelope`, the namespace prefix is `soapenv`.

**Prefix vs. namespace URI:** This property deals with the lexical prefix in the tag name. A prefix is not itself the namespace URI; namespace bindings are expressed through `xmlns` attributes in the XML.

### Xml.TagPath

`Chilkat 11.7.0 · ckpython · Xml · TagPath · property · read-only · since 9.5.0.77`

```python
# strVal is a string

# ckStr is a CkString

xml.get_TagPath(ckStr);

strVal = xml.tagPath();
```

Returns the Chilkat tag path needed to reach this element from the document root. If this object currently references the root element, the returned path is the empty string.

**Not XPath:** A Chilkat tag path is Chilkat's own navigation syntax, typically using `|` between element names. It is not an XPath expression.

### Xml.TagUnprefixed

`Chilkat 11.7.0 · ckpython · Xml · TagUnprefixed · property · read/write · since 9.5.0.77`

```python
# strVal is a string

# ckStr is a CkString

xml.get_TagUnprefixed(ckStr);

strVal = xml.tagUnprefixed();

xml.put_TagUnprefixed(strVal);
```

Gets or sets the unprefixed portion of this element's tag. For `soapenv:Envelope`, the unprefixed tag is `Envelope`.

Use `TagNsPrefix` to access the prefix separately.

### Xml.TreeId

`Chilkat 11.7.0 · ckpython · Xml · TreeId · property · read-only`

```python
# intVal is an integer

intVal = xml.get_TreeId();
```

Returns the identifier of the XML tree to which this element belongs. Elements in the same XML document have the same `TreeId`.

**Useful for element references:** Multiple `Xml` objects can reference different elements in the same underlying tree. Comparing `TreeId` values is a convenient way to determine whether two element references belong to that same tree.

### Xml.UncommonOptions

`Chilkat 11.7.0 · ckpython · Xml · UncommonOptions · property · read/write · since 9.5.0.90`

```python
# strVal is a string

# ckStr is a CkString

xml.get_UncommonOptions(ckStr);

strVal = xml.uncommonOptions();

xml.put_UncommonOptions(strVal);
```

Provides a catch-all string for uncommon XML behaviors. The default is the empty string, which is appropriate for normal use.

Leave this property empty unless Chilkat documentation or support identifies a specific option needed for a specialized interoperability case.

## Methods

### Xml.AccumulateTagContent

`Chilkat 11.7.0 · ckpython · Xml · AccumulateTagContent · method`

```python
# tag is a string

# skipTags is a string

# outStr is a CkString (output)

status = xml.AccumulateTagContent(tag, skipTags, outStr);

retStr = xml.accumulateTagContent(tag, skipTags);
```

Traverses the subtree rooted at the calling element and concatenates the text content of all elements whose tag equals `tag`.

`skipTags` is a vertical-bar-delimited list of tag names whose entire subtrees are excluded from the accumulation. For example, `script|style` skips elements rooted at either of those tags.

Returns True for success, False for failure.

### Xml.AddAttribute

`Chilkat 11.7.0 · ckpython · Xml · AddAttribute · method`

```python
# name is a string

# value is a string

status = xml.AddAttribute(name, value);
```

Adds an attribute named `name` with the specified string `value` to the calling element.

Returns `True` on success and `False` on failure.

**When an attribute may already exist:** Use `AddOrUpdateAttribute` or `UpdateAttribute` when the desired behavior is to update an existing attribute value instead of requiring a new attribute.

Returns True for success, False for failure.

### Xml.AddAttributeInt

`Chilkat 11.7.0 · ckpython · Xml · AddAttributeInt · method`

```python
# name is a string

# value is an integer

status = xml.AddAttributeInt(name, value);
```

Adds an attribute named `name` whose value is the decimal representation of `value`.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.AddChildTree

`Chilkat 11.7.0 · ckpython · Xml · AddChildTree · method`

```python
# tree is a CkXml

status = xml.AddChildTree(tree);
```

Adds the entire XML subtree referenced by `tree` as a new direct child of the calling element.

If `tree` already belongs to another XML document, the subtree is transferred to the destination tree rather than copied as an unrelated duplicate.

**Tree ownership:** After moving a subtree between documents, its elements belong to the destination tree. `TreeId` can be used to determine which tree an element reference belongs to.

Returns True for success, False for failure.

### Xml.AddOrUpdateAttribute

`Chilkat 11.7.0 · ckpython · Xml · AddOrUpdateAttribute · method`

```python
# name is a string

# value is a string

xml.AddOrUpdateAttribute(name, value);
```

Sets the string value of an attribute on the calling element. If an attribute named `name` already exists, its value is replaced; otherwise the attribute is added.

### Xml.AddOrUpdateAttributeI

`Chilkat 11.7.0 · ckpython · Xml · AddOrUpdateAttributeI · method`

```python
# name is a string

# value is an integer

xml.AddOrUpdateAttributeI(name, value);
```

Sets an integer-valued attribute on the calling element. If an attribute named `name` already exists, its value is replaced with the decimal representation of `value`; otherwise the attribute is added.

### Xml.AddStyleSheet

`Chilkat 11.7.0 · ckpython · Xml · AddStyleSheet · method`

```python
# styleSheet is a string

xml.AddStyleSheet(styleSheet);
```

Adds an XML stylesheet processing instruction to the document. Pass the complete processing-instruction text, for example:

```
<?xml-stylesheet href="mystyle.css" title="Compact" type="text/css"?>
```

**Processing instruction:** An XML stylesheet declaration associates stylesheet metadata with the XML document; it does not apply or execute the stylesheet.

### Xml.AddToAttribute

`Chilkat 11.7.0 · ckpython · Xml · AddToAttribute · method`

```python
# name is a string

# amount is an integer

xml.AddToAttribute(name, amount);
```

Treats the named attribute value as an integer, adds `amount`, and stores the resulting integer back in the attribute.

If the attribute does not yet exist, this method behaves like `AddOrUpdateAttributeI` and creates it with `amount` as the value.

### Xml.AddToChildContent

`Chilkat 11.7.0 · ckpython · Xml · AddToChildContent · method`

```python
# tag is a string

# amount is an integer

xml.AddToChildContent(tag, amount);
```

Finds the child identified by `tag`, interprets its content as an integer, adds `amount`, and stores the resulting integer as the child's new content.

### Xml.AddToContent

`Chilkat 11.7.0 · ckpython · Xml · AddToContent · method`

```python
# amount is an integer

xml.AddToContent(amount);
```

Interprets this element's content as an integer, adds `amount`, and stores the resulting integer as the new content.

### Xml.AppendToContent

`Chilkat 11.7.0 · ckpython · Xml · AppendToContent · method`

```python
# str is a string

status = xml.AppendToContent(str);
```

Appends `str` to the existing text content of the calling element without replacing its child elements.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.ChildContentMatches

`Chilkat 11.7.0 · ckpython · Xml · ChildContentMatches · method`

```python
# tagPath is a string

# pattern is a string

# caseSensitive is a boolean

retBool = xml.ChildContentMatches(tagPath, pattern, caseSensitive);
```

Returns `True` if the child identified by `tagPath` has content matching `pattern`; otherwise returns `False`. `caseSensitive` controls whether letter case is significant.

The pattern may contain `*` wildcards, where each asterisk matches zero or more characters.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.ChilkatPath

`Chilkat 11.7.0 · ckpython · Xml · ChilkatPath · method`

```python
# pathCmd is a string

# outStr is a CkString (output)

status = xml.ChilkatPath(pathCmd, outStr);

retStr = xml.chilkatPath(pathCmd);
```

Evaluates a Chilkat-specific path command that can navigate from the current element, return element content or an attribute value, or move the caller's internal element reference.

**This syntax is not XPath.** Commands are separated by vertical bars and the expression ends with a return command:

```
command|command|command|...|returnCommand
```

Navigation commands include:

- `TagName` - first direct child having that tag.
- `TagName[n]` - the indexed direct child having that tag.
- `..` - parent.
- `++` / `--` - next / previous sibling.
- `TagName{Content}` - first direct child with that tag and exact content.
- `/T/TagName` - traverse the subtree and find the first element with that tag.
- `/C/TagName,ContentPattern` - traverse for a tag whose content matches a wildcard pattern.
- `/C/ContentPattern` - traverse for any tag whose content matches a wildcard pattern.
- `/A/TagName,AttrName,AttrValuePattern` - traverse for a tag having a matching attribute value.

The final return command is:

- `*` - return the current element's content.
- `(AttrName)` - return an attribute value.
- `$` - move this `Xml` object to the selected element and return an empty string.

**Index substitution:** The `I`, `J`, and `K` properties can be used with `[i]`, `[j]`, and `[k]` in path expressions.

Returns True for success, False for failure.

### Xml.Clear

`Chilkat 11.7.0 · ckpython · Xml · Clear · method`

```python
xml.Clear();
```

Clears the calling element by removing all child elements, attributes, and text content, and resets its tag name to `unnamed`.

The element itself remains in the tree; this method clears its contents rather than removing the element from its parent.

### Xml.ContentMatches

`Chilkat 11.7.0 · ckpython · Xml · ContentMatches · method`

```python
# pattern is a string

# caseSensitive is a boolean

retBool = xml.ContentMatches(pattern, caseSensitive);
```

Returns `True` if this element's content matches `pattern`; otherwise returns `False`. `caseSensitive` controls whether letter case is significant.

The pattern may contain `*` wildcards, where each asterisk matches zero or more characters.

### Xml.Copy

`Chilkat 11.7.0 · ckpython · Xml · Copy · method`

```python
# node is a CkXml

xml.Copy(node);
```

Copies the `Tag`, `Content`, and attributes from `node` to the calling element.

**Not a subtree copy:** This method does not copy the source element's children. Use a tree-oriented method such as `AddChildTree` or `SwapTree` when child structure is part of the operation.

### Xml.CopyRef

`Chilkat 11.7.0 · ckpython · Xml · CopyRef · method`

```python
# copyFromNode is a CkXml

xml.CopyRef(copyFromNode);
```

Changes this `Xml` object so that it references the same underlying XML element as `copyFromNode`. The caller's previous element reference is discarded.

**Reference operation:** `CopyRef` does not copy XML data. After the call, both `Xml` objects refer to the same element, so edits through either reference affect the same tree element.

### Xml.DecodeEntities

`Chilkat 11.7.0 · ckpython · Xml · DecodeEntities · method`

```python
# str is a string

# outStr is a CkString (output)

status = xml.DecodeEntities(str, outStr);

retStr = xml.decodeEntities(str);
```

Decodes HTML character entities found in `str` and returns the decoded text. This is a utility operation; it does not modify the XML tree unless the returned string is assigned to an element.

For example, an HTML entity such as `&amp;` is decoded to `&`.

Returns True for success, False for failure.

### Xml.DecryptContent

`Chilkat 11.7.0 · ckpython · Xml · DecryptContent · method`

```python
# password is a string

status = xml.DecryptContent(password);
```

Decrypts element content previously produced by `EncryptContent`, using the same password, and restores the original plaintext content.

Returns `True` on success and `False` on failure.

**Compatibility-oriented encryption:** This method is paired specifically with `EncryptContent`. It is not a general XML Encryption (XML-Enc) implementation.

Returns True for success, False for failure.

### Xml.EncryptContent

`Chilkat 11.7.0 · ckpython · Xml · EncryptContent · method`

```python
# password is a string

status = xml.EncryptContent(password);
```

Encrypts the calling element's text content using Chilkat's password-based 128-bit AES-CBC format and replaces the plaintext content with Base64-encoded encrypted data.

Returns `True` on success and `False` on failure.

**Scope:** Only this element's content is encrypted. The tag, attributes, and child elements are not encrypted by this method. Use `DecryptContent` with the same password to restore the content.

Returns True for success, False for failure.

### Xml.ExtractChildByIndex

`Chilkat 11.7.0 · ckpython · Xml · ExtractChildByIndex · method`

```python
# returns a CkXml

# index is an integer

ret_xml = xml.ExtractChildByIndex(index);
```

Removes the direct child at zero-based `index` from the calling element and returns an `Xml` object for the detached child subtree.

**Extract vs. remove:** Unlike `RemoveChildByIndex`, extraction gives the caller a reference to the removed subtree so it can be retained, inspected, or attached elsewhere.

Returns `None` on failure

### Xml.ExtractChildByName

`Chilkat 11.7.0 · ckpython · Xml · ExtractChildByName · method`

```python
# returns a CkXml

# tagPath is a string

# attrName is a string

# attrValue is a string

ret_xml = xml.ExtractChildByName(tagPath, attrName, attrValue);
```

Finds, removes, and returns the first child selected by `tagPath` and the optional attribute criteria.

If `attrName` and `attrValue` are empty, the first child matching the tag/path is extracted. If `attrName` is provided, the child must have that attribute. If `attrValue` is also provided, the attribute value must match exactly.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns `None` on failure

### Xml.FindChild

`Chilkat 11.7.0 · ckpython · Xml · FindChild · method`

```python
# returns a CkXml

# tagPath is a string

ret_xml = xml.FindChild(tagPath);
```

Returns an `Xml` object referencing the child selected by `tagPath`. The calling object remains positioned on its current element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.FindChild2

`Chilkat 11.7.0 · ckpython · Xml · FindChild2 · method`

```python
# tagPath is a string

status = xml.FindChild2(tagPath);
```

Moves the calling `Xml` object's internal reference to the child selected by `tagPath`. Returns `True` when the child is found and the move succeeds; otherwise returns `False`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.FindNextRecord

`Chilkat 11.7.0 · ckpython · Xml · FindNextRecord · method`

```python
# returns a CkXml

# tagPath is a string

# contentPattern is a string

ret_xml = xml.FindNextRecord(tagPath, contentPattern);
```

Finds the next direct child record for which the descendant identified by `tagPath` has content matching `contentPattern`. This is intended for iterating record-like child elements.

The content pattern may contain `*` wildcards.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns `None` on failure

### Xml.FindOrAddNewChild

`Chilkat 11.7.0 · ckpython · Xml · FindOrAddNewChild · method`

```python
# returns a CkXml

# tagPath is a string

ret_xml = xml.FindOrAddNewChild(tagPath);
```

Returns the child selected by `tagPath` if it already exists. If it does not exist, creates the required child path with empty content and returns the resulting child element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath. Use `NewChild` instead when duplicate children with the same tag are intentional.

Returns `None` on failure

### Xml.FirstChild

`Chilkat 11.7.0 · ckpython · Xml · FirstChild · method`

```python
# returns a CkXml

ret_xml = xml.FirstChild();
```

Returns an `Xml` object referencing the first direct child of the calling element.

A common forward-iteration pattern is `FirstChild` followed by repeated calls to `NextSibling`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.FirstChild2

`Chilkat 11.7.0 · ckpython · Xml · FirstChild2 · method`

```python
status = xml.FirstChild2();
```

Moves the calling `Xml` object's internal reference to its first direct child. Returns `True` if a first child exists; otherwise returns `False`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.GetAttributeName

`Chilkat 11.7.0 · ckpython · Xml · GetAttributeName · method`

```python
# index is an integer

# outStr is a CkString (output)

status = xml.GetAttributeName(index, outStr);

retStr = xml.getAttributeName(index);
```

Returns the name of the attribute at zero-based `index`. Use `NumAttributes` to determine the valid index range.

Returns True for success, False for failure.

### Xml.GetAttributeValue

`Chilkat 11.7.0 · ckpython · Xml · GetAttributeValue · method`

```python
# index is an integer

# outStr is a CkString (output)

status = xml.GetAttributeValue(index, outStr);

retStr = xml.getAttributeValue(index);
```

Returns the value of the attribute at zero-based `index`. Use `NumAttributes` to determine the valid index range.

Returns True for success, False for failure.

### Xml.GetAttributeValueInt

`Chilkat 11.7.0 · ckpython · Xml · GetAttributeValueInt · method`

```python
# index is an integer

retInt = xml.GetAttributeValueInt(index);
```

Returns the value of the attribute at zero-based `index`, interpreted as a 32-bit integer.

### Xml.GetAttrValue

`Chilkat 11.7.0 · ckpython · Xml · GetAttrValue · method`

```python
# name is a string

# outStr is a CkString (output)

status = xml.GetAttrValue(name, outStr);

retStr = xml.getAttrValue(name);
```

Returns the value of the attribute named `name` on the calling element.

Use `HasAttribute` when the application must distinguish a missing attribute from an attribute whose value is empty.

Returns True for success, False for failure.

### Xml.GetAttrValueInt

`Chilkat 11.7.0 · ckpython · Xml · GetAttrValueInt · method`

```python
# name is a string

retInt = xml.GetAttrValueInt(name);
```

Returns the value of the attribute named `name` interpreted as a 32-bit integer. Returns `0` if the attribute does not exist.

**Ambiguous zero:** Because a missing attribute and an attribute containing zero can both yield `0`, call `HasAttribute` first when that distinction matters.

### Xml.GetChild

`Chilkat 11.7.0 · ckpython · Xml · GetChild · method`

```python
# returns a CkXml

# index is an integer

ret_xml = xml.GetChild(index);
```

Returns an `Xml` object referencing the direct child at zero-based `index`. The calling object remains positioned on its current element.

Use `NumChildren` to determine the valid child range.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.GetChild2

`Chilkat 11.7.0 · ckpython · Xml · GetChild2 · method`

```python
# index is an integer

status = xml.GetChild2(index);
```

Moves the calling `Xml` object's internal reference to the direct child at zero-based `index`. Returns `True` on success and `False` if the child cannot be selected.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.GetChildAttrValue

`Chilkat 11.7.0 · ckpython · Xml · GetChildAttrValue · method · since 9.5.0.77`

```python
# tagPath is a string

# attrName is a string

# outStr is a CkString (output)

status = xml.GetChildAttrValue(tagPath, attrName, outStr);

retStr = xml.getChildAttrValue(tagPath, attrName);
```

Returns the value of attribute `attrName` on the descendant element selected by `tagPath`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns True for success, False for failure.

### Xml.GetChildBoolValue

`Chilkat 11.7.0 · ckpython · Xml · GetChildBoolValue · method`

```python
# tagPath is a string

retBool = xml.GetChildBoolValue(tagPath);
```

Returns the integer content of the child selected by `tagPath` as a Boolean value: content equal to `0` yields `False`; a non-zero integer yields `True`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.GetChildContent

`Chilkat 11.7.0 · ckpython · Xml · GetChildContent · method`

```python
# tagPath is a string

# outStr is a CkString (output)

status = xml.GetChildContent(tagPath, outStr);

retStr = xml.getChildContent(tagPath);
```

Returns the text content of the child selected by `tagPath`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Content only:** The returned value is the child element's direct `Content`; nested child elements are not serialized into this string.

Returns True for success, False for failure.

### Xml.GetChildContentByIndex

`Chilkat 11.7.0 · ckpython · Xml · GetChildContentByIndex · method`

```python
# index is an integer

# outStr is a CkString (output)

status = xml.GetChildContentByIndex(index, outStr);

retStr = xml.getChildContentByIndex(index);
```

Returns the text content of the direct child at zero-based `index`. Use `NumChildren` to determine the valid range.

Returns True for success, False for failure.

### Xml.GetChildContentSb

`Chilkat 11.7.0 · ckpython · Xml · GetChildContentSb · method · since 9.5.0.76`

```python
# tagPath is a string

# sb is a CkStringBuilder

status = xml.GetChildContentSb(tagPath, sb);
```

Finds the element selected by `tagPath` and appends that element's text content to `sb`.

The existing contents of the `StringBuilder` are preserved.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.GetChildExact

`Chilkat 11.7.0 · ckpython · Xml · GetChildExact · method`

```python
# returns a CkXml

# tag is a string

# content is a string

ret_xml = xml.GetChildExact(tag, content);
```

Returns the first direct child whose tag equals `tag` and whose text content exactly equals `content`.

The calling object remains positioned on its current element.

Returns `None` on failure

### Xml.GetChildIntValue

`Chilkat 11.7.0 · ckpython · Xml · GetChildIntValue · method`

```python
# tagPath is a string

retInt = xml.GetChildIntValue(tagPath);
```

**Full documentation for this method (same in every language):** [Workaround for 32-bit Integer Limitations (+/- 2GB)](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/xml_GetChildIntValue_32_bit_limitation.md)

Returns the content of the child selected by `tagPath`, interpreted as a 32-bit integer.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Integer range:** Use `GetChildContent` and parse the returned text separately when values may exceed the range of a 32-bit integer.

### Xml.GetChildTag

`Chilkat 11.7.0 · ckpython · Xml · GetChildTag · method`

```python
# index is an integer

# outStr is a CkString (output)

status = xml.GetChildTag(index, outStr);

retStr = xml.getChildTag(index);
```

Returns the tag name of the direct child at zero-based `index`. Use `NumChildren` to determine the valid index range.

Returns True for success, False for failure.

### Xml.GetChildTagByIndex

`Chilkat 11.7.0 · ckpython · Xml · GetChildTagByIndex · method`

```python
# index is an integer

# outStr is a CkString (output)

status = xml.GetChildTagByIndex(index, outStr);

retStr = xml.getChildTagByIndex(index);
```

Returns the tag name of the direct child at zero-based `index`. Use `NumChildren` to determine the valid index range.

Returns True for success, False for failure.

### Xml.GetChildWithAttr

`Chilkat 11.7.0 · ckpython · Xml · GetChildWithAttr · method`

```python
# returns a CkXml

# tagPath is a string

# attrName is a string

# attrValue is a string

ret_xml = xml.GetChildWithAttr(tagPath, attrName, attrValue);
```

Returns the child selected by `tagPath` that also has an attribute named `attrName` whose value exactly equals `attrValue`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns `None` on failure

### Xml.GetChildWithContent

`Chilkat 11.7.0 · ckpython · Xml · GetChildWithContent · method`

```python
# returns a CkXml

# content is a string

ret_xml = xml.GetChildWithContent(content);
```

Returns the first direct child whose text content exactly equals `content`. The child tag may be any value.

Returns `None` on failure

### Xml.GetChildWithTag

`Chilkat 11.7.0 · ckpython · Xml · GetChildWithTag · method`

```python
# returns a CkXml

# tagPath is a string

ret_xml = xml.GetChildWithTag(tagPath);
```

Returns an `Xml` object referencing the child selected by `tagPath`. The calling object remains positioned on its current element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.GetChildWithTag2

`Chilkat 11.7.0 · ckpython · Xml · GetChildWithTag2 · method · since 11.1.0`

```python
# tagPath is a string

status = xml.GetChildWithTag2(tagPath);
```

Moves the calling `Xml` object's internal reference to the child selected by `tagPath`. Returns `True` when the child is found and the move succeeds; otherwise returns `False`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.GetNthChildWithTag

`Chilkat 11.7.0 · ckpython · Xml · GetNthChildWithTag · method`

```python
# returns a CkXml

# tag is a string

# n is an integer

ret_xml = xml.GetNthChildWithTag(tag, n);
```

Returns the zero-based `n`th direct child whose tag exactly equals `tag`. Children with other tag names are ignored when counting matches.

Use `NumChildrenHavingTag` to determine how many matching children are available.

Returns `None` on failure

### Xml.GetNthChildWithTag2

`Chilkat 11.7.0 · ckpython · Xml · GetNthChildWithTag2 · method`

```python
# tag is a string

# n is an integer

status = xml.GetNthChildWithTag2(tag, n);
```

Moves the calling `Xml` object's internal reference to the zero-based `n`th direct child whose tag equals `tag`. Returns `True` on success and `False` when no such child exists.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.GetParent

`Chilkat 11.7.0 · ckpython · Xml · GetParent · method`

```python
# returns a CkXml

ret_xml = xml.GetParent();
```

Returns an `Xml` object referencing this element's parent. Returns no parent when the current element is the document root.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.GetParent2

`Chilkat 11.7.0 · ckpython · Xml · GetParent2 · method`

```python
status = xml.GetParent2();
```

Moves the calling `Xml` object's internal reference to its parent. Returns `True` if a parent exists; otherwise returns `False` when already at the root.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.GetRoot

`Chilkat 11.7.0 · ckpython · Xml · GetRoot · method`

```python
# returns a CkXml

ret_xml = xml.GetRoot();
```

Returns an `Xml` object referencing the root element of the XML tree that contains the current element. The calling object remains positioned on its current element.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.GetRoot2

`Chilkat 11.7.0 · ckpython · Xml · GetRoot2 · method`

```python
xml.GetRoot2();
```

Moves the calling `Xml` object's internal reference to the root element of its XML tree.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.GetSelf

`Chilkat 11.7.0 · ckpython · Xml · GetSelf · method`

```python
# returns a CkXml

ret_xml = xml.GetSelf();
```

Returns a new `Xml` object that references the same underlying XML element as the calling object.

**Shared element reference:** This is not a deep copy. Both objects reference the same element, so changes made through either object are changes to the same XML tree.

Returns `None` on failure

### Xml.GetXml

`Chilkat 11.7.0 · ckpython · Xml · GetXml · method`

```python
# outStr is a CkString (output)

status = xml.GetXml(outStr);

retStr = xml.getXml();
```

Serializes the XML tree or subtree rooted at the current element and returns the XML text.

When called while positioned on the document root, the XML declaration is included if `EmitXmlDecl` is `True`. When called on a non-root element, only that subtree is emitted and the document declaration is not included.

`EmitCompact`, `Encoding`, `Standalone`, and related document/output properties affect serialization as applicable.

**String vs. bytes:** A language string is Unicode text. The `Encoding` declaration describes serialized XML encoding, while actual byte encoding matters when XML is written to a file or byte-oriented destination.

Returns True for success, False for failure.

### Xml.GetXmlBd

`Chilkat 11.7.0 · ckpython · Xml · GetXmlBd · method · since 9.5.0.77`

```python
# bd is a CkBinData

status = xml.GetXmlBd(bd);
```

Serializes the XML tree or subtree rooted at the current element and appends the encoded XML bytes to `bd`.

The existing contents of the `BinData` object are preserved. The XML output encoding is governed by the XML document's output settings, including `Encoding`.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.GetXmlSb

`Chilkat 11.7.0 · ckpython · Xml · GetXmlSb · method · since 9.5.0.62`

```python
# sb is a CkStringBuilder

status = xml.GetXmlSb(sb);
```

Serializes the XML tree or subtree rooted at the current element and appends the resulting XML text to `sb`.

The existing contents of `sb` are preserved. Output properties such as `EmitCompact` and `EmitXmlDecl` apply as appropriate.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.HasAttribute

`Chilkat 11.7.0 · ckpython · Xml · HasAttribute · method`

```python
# name is a string

retBool = xml.HasAttribute(name);
```

Returns `True` if the calling element has an attribute named `name`; otherwise returns `False`.

### Xml.HasAttrWithValue

`Chilkat 11.7.0 · ckpython · Xml · HasAttrWithValue · method`

```python
# name is a string

# value is a string

retBool = xml.HasAttrWithValue(name, value);
```

Returns `True` if the calling element has an attribute named `name` whose value exactly equals `value`; otherwise returns `False`.

### Xml.HasChildWithContent

`Chilkat 11.7.0 · ckpython · Xml · HasChildWithContent · method`

```python
# content is a string

retBool = xml.HasChildWithContent(content);
```

Returns `True` if any direct child has text content exactly equal to `content`; otherwise returns `False`.

### Xml.HasChildWithTag

`Chilkat 11.7.0 · ckpython · Xml · HasChildWithTag · method`

```python
# tagPath is a string

retBool = xml.HasChildWithTag(tagPath);
```

Returns `True` if the child selected by `tagPath` exists; otherwise returns `False`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.HasChildWithTagAndContent

`Chilkat 11.7.0 · ckpython · Xml · HasChildWithTagAndContent · method`

```python
# tagPath is a string

# content is a string

retBool = xml.HasChildWithTagAndContent(tagPath, content);
```

Returns `True` if the child selected by `tagPath` exists and its text content exactly equals `content`; otherwise returns `False`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.InsertChildTreeAfter

`Chilkat 11.7.0 · ckpython · Xml · InsertChildTreeAfter · method`

```python
# index is an integer

# tree is a CkXml

xml.InsertChildTreeAfter(index, tree);
```

Inserts the entire subtree referenced by `tree` as a direct child immediately after the existing child at zero-based `index`.

If `tree` belongs to another XML document, the subtree is transferred to the destination tree.

**Structural move:** The operation preserves the subtree structure. The supplied tree is not flattened into text content.

### Xml.InsertChildTreeBefore

`Chilkat 11.7.0 · ckpython · Xml · InsertChildTreeBefore · method`

```python
# index is an integer

# tree is a CkXml

xml.InsertChildTreeBefore(index, tree);
```

Inserts the entire subtree referenced by `tree` as a direct child immediately before the existing child at zero-based `index`.

If `tree` belongs to another XML document, the subtree is transferred to the destination tree.

**Structural move:** The operation preserves the subtree structure. The supplied tree is not flattened into text content.

### Xml.LastChild

`Chilkat 11.7.0 · ckpython · Xml · LastChild · method`

```python
# returns a CkXml

ret_xml = xml.LastChild();
```

Returns an `Xml` object referencing the last direct child of the calling element.

A common reverse-iteration pattern is `LastChild` followed by repeated calls to `PreviousSibling`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.LastChild2

`Chilkat 11.7.0 · ckpython · Xml · LastChild2 · method`

```python
status = xml.LastChild2();
```

Moves the calling `Xml` object's internal reference to its last direct child. Returns `True` if a last child exists; otherwise returns `False`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.LoadBd

`Chilkat 11.7.0 · ckpython · Xml · LoadBd · method · since 9.5.0.77`

```python
# bd is a CkBinData

# autoTrim is a boolean

status = xml.LoadBd(bd, autoTrim);
```

Parses XML from the bytes contained in `bd` and replaces the calling object's current XML tree with the loaded document.

If `autoTrim` is `True`, leading and trailing whitespace is removed from each leaf element's text content during loading.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.LoadSb

`Chilkat 11.7.0 · ckpython · Xml · LoadSb · method · since 9.5.0.62`

```python
# sb is a CkStringBuilder

# autoTrim is a boolean

status = xml.LoadSb(sb, autoTrim);
```

Parses XML from the current contents of `sb` and replaces the calling object's current XML tree with the loaded document.

If `autoTrim` is `True`, leading and trailing whitespace is removed from each leaf element's text content while loading.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.LoadXml

`Chilkat 11.7.0 · ckpython · Xml · LoadXml · method`

```python
# xmlData is a string

status = xml.LoadXml(xmlData);
```

Parses the XML text in `xmlData` and replaces the calling object's current XML tree content with the loaded document root. Returns `True` if parsing succeeds.

**Replacement operation:** A successful load replaces the current document/tree state represented by this object; it does not append the loaded XML beneath the current element.

Returns True for success, False for failure.

### Xml.LoadXml2

`Chilkat 11.7.0 · ckpython · Xml · LoadXml2 · method`

```python
# xmlData is a string

# autoTrim is a boolean

status = xml.LoadXml2(xmlData, autoTrim);
```

Parses the XML text in `xmlData` and replaces the current XML tree, like `LoadXml`. The `autoTrim` argument additionally controls whether leading and trailing whitespace is removed from each leaf element's text content while loading.

**Whitespace significance:** Set `autoTrim` to `False` when leading or trailing text whitespace is significant to the application.

Returns True for success, False for failure.

### Xml.LoadXmlFile

`Chilkat 11.7.0 · ckpython · Xml · LoadXmlFile · method`

```python
# fileName is a string

status = xml.LoadXmlFile(fileName);
```

Reads and parses an XML document from `fileName`, replacing the calling object's current XML tree with the loaded document root. Returns `True` on success.

The file's XML declaration and byte encoding are used as part of normal XML parsing.

Returns True for success, False for failure.

### Xml.LoadXmlFile2

`Chilkat 11.7.0 · ckpython · Xml · LoadXmlFile2 · method`

```python
# fileName is a string

# autoTrim is a boolean

status = xml.LoadXmlFile2(fileName, autoTrim);
```

Reads and parses an XML document from `fileName`, replacing the current XML tree. The `autoTrim` argument controls whether leading and trailing whitespace is removed from each leaf element's text content.

**Whitespace significance:** Set `autoTrim` to `False` when leading or trailing text whitespace must be preserved exactly.

Returns True for success, False for failure.

### Xml.NewChild

`Chilkat 11.7.0 · ckpython · Xml · NewChild · method`

```python
# returns a CkXml

# tagPath is a string

# content is a string

ret_xml = xml.NewChild(tagPath, content);
```

Creates and returns a new child at `tagPath` with the specified text `content`. A new child is created even when a child with the same tag already exists.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath. Intermediate elements in a multi-part path are created as needed. Use `FindOrAddNewChild` when duplicate final children should be avoided.

Returns `None` on failure

### Xml.NewChild2

`Chilkat 11.7.0 · ckpython · Xml · NewChild2 · method`

```python
# tagPath is a string

# content is a string

xml.NewChild2(tagPath, content);
```

Creates a new child at `tagPath` with the specified text `content`, but does not return a separate `Xml` object for the new element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath. Intermediate elements in a multi-part path are created as needed.

### Xml.NewChildAfter

`Chilkat 11.7.0 · ckpython · Xml · NewChildAfter · method`

```python
# returns a CkXml

# index is an integer

# tag is a string

# content is a string

ret_xml = xml.NewChildAfter(index, tag, content);
```

Creates a new direct child with the specified `tag` and `content`, inserts it immediately after the child at zero-based `index`, and returns the new child element.

Returns `None` on failure

### Xml.NewChildBefore

`Chilkat 11.7.0 · ckpython · Xml · NewChildBefore · method`

```python
# returns a CkXml

# index is an integer

# tag is a string

# content is a string

ret_xml = xml.NewChildBefore(index, tag, content);
```

Creates a new direct child with the specified `tag` and `content`, inserts it immediately before the child at zero-based `index`, and returns the new child element.

Returns `None` on failure

### Xml.NewChildInt2

`Chilkat 11.7.0 · ckpython · Xml · NewChildInt2 · method`

```python
# tagPath is a string

# value is an integer

xml.NewChildInt2(tagPath, value);
```

Creates a new child at `tagPath` whose content is the decimal representation of `value`. No separate child object is returned.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath. Intermediate elements in a multi-part path are created as needed.

### Xml.NextInTraversal2

`Chilkat 11.7.0 · ckpython · Xml · NextInTraversal2 · method · since 9.5.0.77`

```python
# sbState is a CkStringBuilder

retBool = xml.NextInTraversal2(sbState);
```

Moves the calling `Xml` object to the next element in a depth-first traversal of the tree and updates `sbState` with the traversal state.

Pass an empty `StringBuilder` when beginning a traversal, then reuse the same `sbState` for each subsequent call.

**Why the name ends in 2:** This method changes the caller's internal element reference. There is no separate `NextInTraversal` method that returns another `Xml` object.

### Xml.NextSibling

`Chilkat 11.7.0 · ckpython · Xml · NextSibling · method`

```python
# returns a CkXml

ret_xml = xml.NextSibling();
```

Returns an `Xml` object referencing the current element's next sibling, or no object when there is no next sibling.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.NextSibling2

`Chilkat 11.7.0 · ckpython · Xml · NextSibling2 · method`

```python
status = xml.NextSibling2();
```

Moves the calling `Xml` object's internal reference to its next sibling. Returns `True` if one exists; otherwise returns `False`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.NumChildrenAt

`Chilkat 11.7.0 · ckpython · Xml · NumChildrenAt · method · since 9.5.0.64`

```python
# tagPath is a string

retInt = xml.NumChildrenAt(tagPath);
```

Returns the number of direct children of the element selected by `tagPath`. Returns `-1` if the path does not identify an existing element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.NumChildrenHavingTag

`Chilkat 11.7.0 · ckpython · Xml · NumChildrenHavingTag · method`

```python
# tag is a string

retInt = xml.NumChildrenHavingTag(tag);
```

Returns the number of direct children whose tag exactly equals `tag`. Descendants below those children are not included.

### Xml.PreviousSibling

`Chilkat 11.7.0 · ckpython · Xml · PreviousSibling · method`

```python
# returns a CkXml

ret_xml = xml.PreviousSibling();
```

Returns an `Xml` object referencing the current element's previous sibling, or no object when there is no previous sibling.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns `None` on failure

### Xml.PreviousSibling2

`Chilkat 11.7.0 · ckpython · Xml · PreviousSibling2 · method`

```python
status = xml.PreviousSibling2();
```

Moves the calling `Xml` object's internal reference to its previous sibling. Returns `True` if one exists; otherwise returns `False`.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

See also:

- [More information about XML methods ending in "2"](http://www.cknotes.com/?p=41)

### Xml.PruneAttribute

`Chilkat 11.7.0 · ckpython · Xml · PruneAttribute · method · since 9.5.0.77`

```python
# attrName is a string

retInt = xml.PruneAttribute(attrName);
```

Recursively traverses the subtree rooted at the calling element and removes every occurrence of the attribute named `attrName`.

Returns the number of attributes removed.

### Xml.PruneTag

`Chilkat 11.7.0 · ckpython · Xml · PruneTag · method · since 9.5.0.77`

```python
# tag is a string

retInt = xml.PruneTag(tag);
```

Recursively traverses the subtree rooted at the calling element and removes every element whose tag equals `tag`. Each removed element's entire descendant subtree is removed with it.

Returns the number of matching tag occurrences removed.

**Subtree pruning:** When a matching parent is removed, its descendants disappear as part of that subtree; this method is intended for structural cleanup rather than text-only removal.

### Xml.RemoveAllAttributes

`Chilkat 11.7.0 · ckpython · Xml · RemoveAllAttributes · method`

```python
status = xml.RemoveAllAttributes();
```

Removes every attribute from the calling element. Returns `True` on success.

Returns True for success, False for failure.

### Xml.RemoveAllChildren

`Chilkat 11.7.0 · ckpython · Xml · RemoveAllChildren · method`

```python
xml.RemoveAllChildren();
```

Removes all direct child elements and their subtrees from the calling element. The calling element's own tag, attributes, and text content are retained.

### Xml.RemoveAttribute

`Chilkat 11.7.0 · ckpython · Xml · RemoveAttribute · method`

```python
# name is a string

status = xml.RemoveAttribute(name);
```

Removes the attribute named `name` from the calling element. Returns `True` when the operation succeeds.

Returns True for success, False for failure.

### Xml.RemoveChild

`Chilkat 11.7.0 · ckpython · Xml · RemoveChild · method`

```python
# tagPath is a string

xml.RemoveChild(tagPath);
```

Removes all child elements selected by `tagPath` beneath the calling element.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**All matches:** This method removes matching children rather than returning a removed subtree. Use an `ExtractChild...` method when the removed element must be retained.

### Xml.RemoveChildByIndex

`Chilkat 11.7.0 · ckpython · Xml · RemoveChildByIndex · method`

```python
# index is an integer

xml.RemoveChildByIndex(index);
```

Removes the direct child at zero-based `index`, including that child's entire subtree.

### Xml.RemoveChildWithContent

`Chilkat 11.7.0 · ckpython · Xml · RemoveChildWithContent · method`

```python
# content is a string

xml.RemoveChildWithContent(content);
```

Removes all direct children whose text content exactly equals `content`, including each removed child's subtree.

### Xml.RemoveFromTree

`Chilkat 11.7.0 · ckpython · Xml · RemoveFromTree · method`

```python
xml.RemoveFromTree();
```

Detaches the calling element and its entire subtree from its parent. The detached element becomes the root of its own independent XML tree.

**Object remains usable:** This method removes the subtree from its former document but keeps the calling `Xml` object referencing the detached subtree.

### Xml.RemoveStyleSheet

`Chilkat 11.7.0 · ckpython · Xml · RemoveStyleSheet · method · since 9.5.0.77`

```python
# attrName is a string

# attrValue is a string

retInt = xml.RemoveStyleSheet(attrName, attrValue);
```

Removes XML stylesheet processing instructions whose attribute named `attrName` has the value `attrValue`.

Returns the number of matching stylesheet declarations removed, or `-1` if an error occurs.

### Xml.SaveBinaryContent

`Chilkat 11.7.0 · ckpython · Xml · SaveBinaryContent · method`

```python
# filename is a string

# unzipFlag is a boolean

# decryptFlag is a boolean

# password is a string

status = xml.SaveBinaryContent(filename, unzipFlag, decryptFlag, password);
```

Decodes the binary content stored in this element and writes the resulting bytes to `filename`. Set `unzipFlag` and `decryptFlag` to reverse the transformations originally applied, and supply the corresponding `password` when decrypting.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.SaveXml

`Chilkat 11.7.0 · ckpython · Xml · SaveXml · method`

```python
# fileName is a string

status = xml.SaveXml(fileName);
```

Serializes the XML tree or subtree rooted at the current element and writes it to `fileName`.

Document/output properties such as `Encoding`, `EmitBom`, `EmitXmlDecl`, and `EmitCompact` affect the generated output as applicable.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.Scrub

`Chilkat 11.7.0 · ckpython · Xml · Scrub · method · since 9.5.0.77`

```python
# directives is a string

xml.Scrub(directives);
```

Recursively normalizes the XML subtree rooted at the calling element according to the comma-separated keywords in `directives`.

Supported directives are:

- `AttrTrimEnds` - remove leading and trailing whitespace from attribute values.
- `AttrTrimInside` - replace tabs, CR, and LF with spaces and collapse repeated spaces inside attribute values.
- `ContentTrimEnds` - remove leading and trailing whitespace from element content.
- `ContentTrimInside` - normalize internal tabs/line breaks/spaces in element content.
- `LowercaseAttrs` - convert attribute names to lowercase.
- `LowercaseTags` - convert tag names to lowercase.
- `RemoveCtrl` - remove US-ASCII control characters with values 0-31 except TAB, CR, and LF.

**Destructive normalization:** Scrubbing modifies the tree. Use these options only when the corresponding whitespace, letter case, or control characters are not semantically significant to the application.

### Xml.SearchAllForContent

`Chilkat 11.7.0 · ckpython · Xml · SearchAllForContent · method`

```python
# returns a CkXml

# afterPtr is a CkXml

# contentPattern is a string

ret_xml = xml.SearchAllForContent(afterPtr, contentPattern);
```

Returns the first element whose text content matches `contentPattern`, regardless of tag name.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Iteration:** Pass the element returned by one call as `afterPtr` on the next call to continue to the next match. Continue until no further element is returned.

Returns `None` on failure

### Xml.SearchAllForContent2

`Chilkat 11.7.0 · ckpython · Xml · SearchAllForContent2 · method`

```python
# afterPtr is a CkXml

# contentPattern is a string

status = xml.SearchAllForContent2(afterPtr, contentPattern);
```

Performs the same breadth-first content search as `SearchAllForContent`, but moves the calling `Xml` object's internal reference to the matching element instead of returning a separate element object.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.SearchForAttribute

`Chilkat 11.7.0 · ckpython · Xml · SearchForAttribute · method`

```python
# returns a CkXml

# afterPtr is a CkXml

# tag is a string

# attr is a string

# valuePattern is a string

ret_xml = xml.SearchForAttribute(afterPtr, tag, attr, valuePattern);
```

Returns the first element whose tag equals `tag`, that has an attribute named `attr`, and whose attribute value matches `valuePattern`.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Iteration:** Pass the previous match as `afterPtr` to continue searching after that element.

Returns `None` on failure

### Xml.SearchForAttribute2

`Chilkat 11.7.0 · ckpython · Xml · SearchForAttribute2 · method`

```python
# afterPtr is a CkXml

# tag is a string

# attr is a string

# valuePattern is a string

status = xml.SearchForAttribute2(afterPtr, tag, attr, valuePattern);
```

Performs the same breadth-first tag/attribute search as `SearchForAttribute`, but moves the calling `Xml` object's internal reference to the matching element instead of returning a separate object.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.SearchForContent

`Chilkat 11.7.0 · ckpython · Xml · SearchForContent · method`

```python
# returns a CkXml

# afterPtr is a CkXml

# tag is a string

# contentPattern is a string

ret_xml = xml.SearchForContent(afterPtr, tag, contentPattern);
```

Returns the first element whose tag equals `tag` and whose text content matches `contentPattern`.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Iteration:** Pass the previous match as `afterPtr` to continue searching after that element.

Returns `None` on failure

### Xml.SearchForContent2

`Chilkat 11.7.0 · ckpython · Xml · SearchForContent2 · method`

```python
# afterPtr is a CkXml

# tag is a string

# contentPattern is a string

status = xml.SearchForContent2(afterPtr, tag, contentPattern);
```

Performs the same breadth-first tag/content search as `SearchForContent`, but moves the calling `Xml` object's internal reference to the matching element.

The search is breadth-first within the subtree rooted at the caller. The `afterPtr` argument identifies the element after which matching should begin, allowing repeated calls to continue an iteration. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element instead.

Wildcard patterns are case-sensitive and may contain `*`, where each asterisk matches zero or more characters.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.SearchForTag

`Chilkat 11.7.0 · ckpython · Xml · SearchForTag · method`

```python
# returns a CkXml

# afterPtr is a CkXml

# tag is a string

ret_xml = xml.SearchForTag(afterPtr, tag);
```

Returns the first element whose tag exactly equals `tag`.

The search is breadth-first within the subtree rooted at the caller. `afterPtr` identifies the element after which searching begins. To begin at the first candidate, use `None` where the language binding permits it; ActiveX callers should pass a reference to the caller's element.

**Iteration:** Pass the previous match as `afterPtr` to find the next matching tag. Continue until no further element is returned.

Returns `None` on failure

### Xml.SearchForTag2

`Chilkat 11.7.0 · ckpython · Xml · SearchForTag2 · method`

```python
# afterPtr is a CkXml

# tag is a string

status = xml.SearchForTag2(afterPtr, tag);
```

Performs the same breadth-first tag search as `SearchForTag`, but moves the calling `Xml` object's internal reference to the matching element instead of returning a separate object.

Use `afterPtr` in the same way as with `SearchForTag` to begin or continue the search.

**Element-reference behavior:** Methods that return an `Xml` object return another object referencing an element in the same underlying tree. Methods whose names end in `2` instead move the caller's internal reference.

Returns True for success, False for failure.

### Xml.SetBinaryContentBd

`Chilkat 11.7.0 · ckpython · Xml · SetBinaryContentBd · method · since 11.0.0`

```python
# data is a CkBinData

# zipFlag is a boolean

# encryptFlag is a boolean

# password is a string

status = xml.SetBinaryContentBd(data, zipFlag, encryptFlag, password);
```

Stores the bytes in `data` as binary content on this element, with optional ZIP compression and optional password-based AES encryption. The stored binary representation is emitted as Base64 text when XML is serialized.

If `zipFlag` is `True`, the bytes are compressed first. If `encryptFlag` is `True`, the data is encrypted using Chilkat's 128-bit Rijndael/AES format and `password`.

Returns `True` on success and `False` on failure.

**Round trip:** Use the corresponding binary-content retrieval methods with matching decompression/decryption options to recover the original bytes.

Returns True for success, False for failure.

### Xml.SetBinaryContentFromFile

`Chilkat 11.7.0 · ckpython · Xml · SetBinaryContentFromFile · method`

```python
# filename is a string

# zipFlag is a boolean

# encryptFlag is a boolean

# password is a string

status = xml.SetBinaryContentFromFile(filename, zipFlag, encryptFlag, password);
```

Reads the bytes from `filename` and stores them as this element's binary content, with optional ZIP compression and optional password-based encryption. The resulting stored data is represented as Base64 when XML text is generated.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.SortByAttribute

`Chilkat 11.7.0 · ckpython · Xml · SortByAttribute · method`

```python
# attrName is a string

# ascending is a boolean

xml.SortByAttribute(attrName, ascending);
```

Sorts the calling element's direct children by the string value of attribute `attrName`. Set `ascending` to `True` for ascending order or `False` for descending order.

`SortCaseInsensitive` controls case sensitivity for string sorting.

### Xml.SortByAttributeInt

`Chilkat 11.7.0 · ckpython · Xml · SortByAttributeInt · method`

```python
# attrName is a string

# ascending is a boolean

xml.SortByAttributeInt(attrName, ascending);
```

Sorts the calling element's direct children numerically by the value of attribute `attrName`, interpreting each sort value as an integer rather than comparing the text lexicographically.

Set `ascending` to `True` for ascending order or `False` for descending order.

### Xml.SortByContent

`Chilkat 11.7.0 · ckpython · Xml · SortByContent · method`

```python
# ascending is a boolean

xml.SortByContent(ascending);
```

Sorts the calling element's direct children by their text content. Set `ascending` to `True` for ascending order or `False` for descending order.

`SortCaseInsensitive` controls case sensitivity for the string comparison.

### Xml.SortByTag

`Chilkat 11.7.0 · ckpython · Xml · SortByTag · method`

```python
# ascending is a boolean

xml.SortByTag(ascending);
```

Sorts the calling element's direct children by tag name. Set `ascending` to `True` for ascending order or `False` for descending order.

`SortCaseInsensitive` controls case sensitivity for the tag-name comparison.

### Xml.SortRecordsByAttribute

`Chilkat 11.7.0 · ckpython · Xml · SortRecordsByAttribute · method`

```python
# sortTag is a string

# attrName is a string

# ascending is a boolean

xml.SortRecordsByAttribute(sortTag, attrName, ascending);
```

Treats each direct child as a record and sorts those records by the value of attribute `attrName` on the record's child identified by `sortTag`.

Set `ascending` to `True` for ascending order or `False` for descending order. String comparisons honor `SortCaseInsensitive`.

### Xml.SortRecordsByContent

`Chilkat 11.7.0 · ckpython · Xml · SortRecordsByContent · method`

```python
# sortTag is a string

# ascending is a boolean

xml.SortRecordsByContent(sortTag, ascending);
```

Treats each direct child as a record and sorts those records by the text content of the record's child named `sortTag`.

Set `ascending` to `True` for ascending order or `False` for descending order. String comparisons honor `SortCaseInsensitive`.

### Xml.SortRecordsByContentInt

`Chilkat 11.7.0 · ckpython · Xml · SortRecordsByContentInt · method`

```python
# sortTag is a string

# ascending is a boolean

xml.SortRecordsByContentInt(sortTag, ascending);
```

Treats each direct child as a record and sorts those records numerically by the integer content of the record's child named `sortTag`.

Numeric comparison is used instead of lexicographic string comparison. Set `ascending` to `True` for ascending order or `False` for descending order.

### Xml.SwapNode

`Chilkat 11.7.0 · ckpython · Xml · SwapNode · method`

```python
# node is a CkXml

status = xml.SwapNode(node);
```

Swaps the calling element's tag, text content, and attributes with those of `node`.

Returns `True` on success and `False` on failure.

**Children are not swapped:** Use `SwapTree` when child subtrees should also be exchanged.

Returns True for success, False for failure.

### Xml.SwapTree

`Chilkat 11.7.0 · ckpython · Xml · SwapTree · method`

```python
# tree is a CkXml

status = xml.SwapTree(tree);
```

Swaps the calling element's complete tree state with `tree`, including tag, text content, attributes, and children.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.TagContent

`Chilkat 11.7.0 · ckpython · Xml · TagContent · method`

```python
# tagName is a string

# outStr is a CkString (output)

status = xml.TagContent(tagName, outStr);

retStr = xml.tagContent(tagName);
```

Searches the subtree rooted at the calling element for the first element whose tag equals `tagName` and returns that element's text content.

**Recursive search:** Unlike direct-child getters, this search is not limited to the caller's immediate children.

Returns True for success, False for failure.

### Xml.TagEquals

`Chilkat 11.7.0 · ckpython · Xml · TagEquals · method`

```python
# tag is a string

retBool = xml.TagEquals(tag);
```

Returns `True` if the calling element's complete tag name, including any namespace prefix, exactly equals `tag`; otherwise returns `False`.

### Xml.TagIndex

`Chilkat 11.7.0 · ckpython · Xml · TagIndex · method · since 9.5.0.76`

```python
# tagPath is a string

retInt = xml.TagIndex(tagPath);
```

Returns the zero-based child index of the element selected by `tagPath`. Returns `-1` when no matching element is found at that path.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

**Index meaning:** The returned index is the element's position among its parent's direct children, which is the index accepted by methods such as `GetChild`, `RemoveChildByIndex`, and the insertion methods.

### Xml.TagNsEquals

`Chilkat 11.7.0 · ckpython · Xml · TagNsEquals · method · since 9.5.0.77`

```python
# ns is a string

retBool = xml.TagNsEquals(ns);
```

Returns `True` if this element's namespace-prefix portion exactly equals `ns`; otherwise returns `False`.

For example, the namespace prefix of `soapenv:Body` is `soapenv`.

**Prefix comparison:** This compares the lexical prefix, not the namespace URI bound to that prefix.

### Xml.TagUnpEquals

`Chilkat 11.7.0 · ckpython · Xml · TagUnpEquals · method · since 9.5.0.77`

```python
# unprefixedTag is a string

retBool = xml.TagUnpEquals(unprefixedTag);
```

Returns `True` if this element's unprefixed tag exactly equals `unprefixedTag`; otherwise returns `False`.

For example, the unprefixed tag of `soapenv:Body` is `Body`.

### Xml.UnzipContent

`Chilkat 11.7.0 · ckpython · Xml · UnzipContent · method`

```python
status = xml.UnzipContent();
```

Reverses `ZipContent`: decodes and decompresses the calling element's compressed content and replaces the stored Base64-compressed representation with the original content.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.UnzipTree

`Chilkat 11.7.0 · ckpython · Xml · UnzipTree · method`

```python
status = xml.UnzipTree();
```

Reverses `ZipTree`: decompresses the stored representation and reconstructs the calling element's previously compressed subtree.

The element's tag and attributes, which are not replaced by `ZipTree`, remain associated with the restored tree.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.UpdateAt

`Chilkat 11.7.0 · ckpython · Xml · UpdateAt · method · since 9.5.0.64`

```python
# tagPath is a string

# autoCreate is a boolean

# value is a string

status = xml.UpdateAt(tagPath, autoCreate, value);
```

Sets the text content of the element selected by `tagPath` to `value`.

If `autoCreate` is `True`, missing elements along the path are created as needed. If it is `False`, the update requires the target path to already exist.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns True for success, False for failure.

### Xml.UpdateAttrAt

`Chilkat 11.7.0 · ckpython · Xml · UpdateAttrAt · method · since 9.5.0.64`

```python
# tagPath is a string

# autoCreate is a boolean

# attrName is a string

# attrValue is a string

status = xml.UpdateAttrAt(tagPath, autoCreate, attrName, attrValue);
```

Sets attribute `attrName` to `attrValue` on the element selected by `tagPath`. The attribute is added when it does not already exist.

If `autoCreate` is `True`, missing elements along the path are created as needed. If it is `False`, the target path must already exist.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

Returns True for success, False for failure.

### Xml.UpdateAttribute

`Chilkat 11.7.0 · ckpython · Xml · UpdateAttribute · method`

```python
# attrName is a string

# attrValue is a string

status = xml.UpdateAttribute(attrName, attrValue);
```

Sets attribute `attrName` to `attrValue`. If the attribute already exists its value is replaced; otherwise the attribute is added.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.UpdateAttributeInt

`Chilkat 11.7.0 · ckpython · Xml · UpdateAttributeInt · method`

```python
# attrName is a string

# value is an integer

status = xml.UpdateAttributeInt(attrName, value);
```

Sets attribute `attrName` to the decimal representation of integer `value`. Use `UpdateAttribute` for string values.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### Xml.UpdateChildContent

`Chilkat 11.7.0 · ckpython · Xml · UpdateChildContent · method`

```python
# tagPath is a string

# value is a string

xml.UpdateChildContent(tagPath, value);
```

Sets the text content of the child selected by `tagPath` to `value`. Missing elements along the path are automatically created as needed.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.UpdateChildContentInt

`Chilkat 11.7.0 · ckpython · Xml · UpdateChildContentInt · method`

```python
# tagPath is a string

# value is an integer

xml.UpdateChildContentInt(tagPath, value);
```

Sets the content of the child selected by `tagPath` to the decimal representation of integer `value`.

**Tag paths:** A tag path is Chilkat's `|`-separated child-navigation syntax, for example `tagA|tagB|tagC`. It is not XPath.

### Xml.ZipContent

`Chilkat 11.7.0 · ckpython · Xml · ZipContent · method`

```python
status = xml.ZipContent();
```

ZIP-compresses this element's text content and replaces the original content with Base64-encoded compressed data.

Returns `True` on success and `False` on failure.

**Reversible transformation:** Call `UnzipContent` to restore the original content.

Returns True for success, False for failure.

### Xml.ZipTree

`Chilkat 11.7.0 · ckpython · Xml · ZipTree · method`

```python
status = xml.ZipTree();
```

ZIP-compresses the calling element's content together with its entire child subtree and replaces that structure with Base64-encoded compressed data.

The calling element's tag and attributes are not changed. Call `UnzipTree` to reconstruct the compressed subtree.

Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `BEncodeContent` | method | before 11.6.1 | — |
| `DecodeContent` | method | before 11.6.1 | — |
| `GetBinaryContent` | method | before 11.6.1 | — |
| `QEncodeContent` | method | before 11.6.1 | — |
| `SetBinaryContent` | method | before 11.6.1 | — |

## Related classes

[`BinData`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/BinData.md), [`StringBuilder`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckpython/classes/StringBuilder.md)

