---
product: Chilkat
product_version: 11.7.0
language: python
language_label: Python
class: HtmlToXml
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/pythonHtmlToXmlRef.html
---
# Chilkat HtmlToXml — Python — v11.7.0

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

## Purpose

**Convert HTML into well-formed XML for structured parsing and searching.**

`Chilkat.HtmlToXml` converts HTML into well-formed XML so the content can be parsed, searched, transformed, or processed programmatically with XML tools. It can accept HTML from strings, files, byte arrays, `BinData`, or `StringBuilder`, and provides options for dropping selected tags, removing common text-formatting tags, controlling non-breaking spaces, choosing the XML charset, and saving the converted XML to a file.

**HTML to XML conversion**

Convert real-world HTML into well-formed XML that can be loaded into `Chilkat.Xml` or other XML processing tools.

**Flexible input sources**

Supply HTML from strings, files, byte arrays, `BinData`, or `StringBuilder` depending on how the content is received or built.

**Drop selected tags**

Remove specific tag types from the output when the application wants a cleaner XML result focused on relevant content.

**Text-formatting cleanup**

Drop common formatting tags when the structure matters more than visual presentation.

**NBSP handling**

Control how non-breaking spaces are represented, converted, removed, or preserved in the XML output.

**Charset and file output**

Choose the XML charset and write the converted XML directly to a file when a persisted result is needed.

**Common pattern:** Load or assign the HTML, set any cleanup options such as dropped tags, text-formatting removal, `Nbsp` behavior, and `XmlCharset`, then call the conversion method and parse the result as XML. Use `HtmlToXml` when structured extraction is needed; use `HtmlToText` when the goal is readable plain text.

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

## Object creation, unlocking and error handling

**Object Creation**

```python
obj = chilkat2.HtmlToXml()
```

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 Python.

Minimal complete program:

```python
import chilkat2

# Required once per process. Any string unlocks a 30-day trial; use your purchased code in production.
glob = chilkat2.Global()
if not glob.UnlockBundle("Anything for 30-day trial"):
    print(glob.LastErrorText)
    raise SystemExit(1)

htmlToXml = chilkat2.HtmlToXml()

success = htmlToXml.ConvertFile("<inHtmlPath>", "<destXmlPath>")
if not success:
    print(htmlToXml.LastErrorText)   # full diagnostic of what went wrong
    raise SystemExit(1)
```

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` | `string DebugLogFilePath` | 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` | `string LastErrorHtml (read-only)` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `string LastErrorText (read-only)` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `string LastErrorXml (read-only)` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `bool LastMethodSuccess` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `VerboseLogging` | `bool VerboseLogging` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `string Version (read-only)` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `DropCustomTags` | property, read/write | `bool DropCustomTags` |
| `Html` | property, read/write | `string Html` |
| `Nbsp` | property, read/write | `int Nbsp` |
| `XmlCharset` | property, read/write | `string XmlCharset` |
| `ConvertFile` | method | `bool ConvertFile(string inHtmlPath, string destXmlPath)` |
| `DropTagType` | method | `void DropTagType(string tagName)` |
| `DropTextFormattingTags` | method | `void DropTextFormattingTags()` |
| `SetHtmlBd` | method | `bool SetHtmlBd(BinData bd)` |
| `SetHtmlBytes` | method | `void SetHtmlBytes(memoryview inData)` |
| `SetHtmlFromFile` | method | `bool SetHtmlFromFile(string filename)` |
| `SetHtmlSb` | method | `bool SetHtmlSb(StringBuilder sb)` |
| `ToXml` | method | `string ToXml()` |
| `ToXmlSb` | method | `bool ToXmlSb(StringBuilder sb)` |
| `UndropTagType` | method | `void UndropTagType(string tagName)` |
| `UndropTextFormattingTags` | method | `void UndropTextFormattingTags()` |

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

## Properties

### HtmlToXml.DropCustomTags

`Chilkat 11.7.0 · python · HtmlToXml · DropCustomTags · property · read/write`

```python
bool DropCustomTags
```

Controls whether tags that Chilkat does not recognize as standard HTML elements are omitted from the generated XML.

**When to use:** Set this property to `True` when custom or application-specific tags would add noise to the XML structure. Leave it `False` when those tags are meaningful to the application and should remain represented in the converted output.

### HtmlToXml.Html

`Chilkat 11.7.0 · python · HtmlToXml · Html · property · read/write`

```python
string Html
```

The HTML source to be converted. Set this property to an HTML string, configure any conversion options, and then call `ToXml`, `Xml`, or `ToXmlSb`.

Assigning this property replaces the current in-memory HTML source. For file-to-file conversion, use `ConvertFile`. To load HTML from a file, `BinData`, or `StringBuilder`, use the corresponding `SetHtml*` method.

**HTML input does not need to already be valid XML.** The converter is intended for real-world HTML and repairs markup as needed to produce a well-formed XML document. Chilkat examples show malformed HTML being normalized and ordinary text represented in `<text>` elements to simplify programmatic extraction.

### HtmlToXml.Nbsp

`Chilkat 11.7.0 · python · HtmlToXml · Nbsp · property · read/write`

```python
int Nbsp
```

Controls how HTML non-breaking-space entities are handled during conversion. The default value is `0`.

| Value | Behavior for `&nbsp;` |
| :--- | :--- |
| `0` | Convert to a normal space character (U+0020). |
| `1` | Convert to the numeric character reference `&#160;` (U+00A0). |
| `2` | Drop the non-breaking-space entity. |
| `3` | Leave the `&nbsp;` entity unconverted by this option. |

This setting applies specifically to the HTML entity `&nbsp;`; it does not define general whitespace normalization.

### HtmlToXml.XmlCharset

`Chilkat 11.7.0 · python · HtmlToXml · XmlCharset · property · read/write`

```python
string XmlCharset
```

Specifies the character encoding to identify for the generated XML, such as `utf-8` or `iso-8859-1`. If this property is empty, Chilkat uses the character encoding of the HTML input. Otherwise, the converted XML uses the specified charset.

**String versus file output:** A string returned by `ToXml` or `Xml` is a string in the programming language's native string representation, while the XML declaration reflects `XmlCharset`. When writing that string to a file, use the same charset so the file bytes agree with the XML declaration. `ConvertFile` performs the file conversion directly.

## Methods

### HtmlToXml.ConvertFile

`Chilkat 11.7.0 · python · HtmlToXml · ConvertFile · method`

```python
bool ConvertFile(string inHtmlPath, string destXmlPath)
```

Converts the HTML file at `inHtmlPath` to a well-formed XML file at `destXmlPath`. The output encoding is controlled by `XmlCharset`; if `XmlCharset` is empty, Chilkat uses the HTML source encoding.

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

**Conversion behavior:** The input is parsed as HTML rather than XML. Chilkat can normalize malformed or incomplete HTML markup as part of producing a well-formed XML document suitable for subsequent parsing and data extraction.

Returns True for success, False for failure.

### HtmlToXml.DropTagType

`Chilkat 11.7.0 · python · HtmlToXml · DropTagType · method`

```python
void DropTagType(string tagName)
```

Marks the specified HTML tag type to be dropped from the generated XML. To drop multiple tag types, call this method once for each tag name.

The setting remains in effect for subsequent conversions performed by this `HtmlToXml` object. Use `UndropTagType` to reverse the setting for a particular tag type.

### HtmlToXml.DropTextFormattingTags

`Chilkat 11.7.0 · python · HtmlToXml · DropTextFormattingTags · method`

```python
void DropTextFormattingTags()
```

Configures the converter to drop common text-formatting tags from the generated XML. The affected tag names are:

`b`, `font`, `i`, `u`, `br`, `center`, `em`, `strong`, `big`, `tt`, `s`, `small`, `strike`, `sub`, and `sup`.

This is useful when the formatting markup is not relevant to later XML parsing and the application wants a simpler structural representation. Call `UndropTextFormattingTags` to keep these tags instead.

### HtmlToXml.SetHtmlBd

`Chilkat 11.7.0 · python · HtmlToXml · SetHtmlBd · method · since 9.5.0.77`

```python
bool SetHtmlBd(BinData bd)
```

Replaces the current HTML source with the complete contents of `bd`.

The data is copied from the supplied `BinData` object and becomes the input for a later call to `ToXml`, `Xml`, or `ToXmlSb`. Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### HtmlToXml.SetHtmlBytes

`Chilkat 11.7.0 · python · HtmlToXml · SetHtmlBytes · method`

```python
void SetHtmlBytes(memoryview inData)
```

Replaces the current HTML source with the contents of `inData`.

This method sets the input to be used by a later call to `ToXml`, `Xml`, or `ToXmlSb`; it does not perform the conversion itself.

### HtmlToXml.SetHtmlFromFile

`Chilkat 11.7.0 · python · HtmlToXml · SetHtmlFromFile · method`

```python
bool SetHtmlFromFile(string filename)
```

Loads HTML from `filename` and replaces the current `Html` input with the file contents.

Returns `True` on success and `False` if the file cannot be read or the HTML input cannot be loaded. Call `ToXml`, `Xml`, or `ToXmlSb` afterward to perform the conversion.

Returns True for success, False for failure.

### HtmlToXml.SetHtmlSb

`Chilkat 11.7.0 · python · HtmlToXml · SetHtmlSb · method · since 9.5.0.97`

```python
bool SetHtmlSb(StringBuilder sb)
```

Replaces the current HTML source with the complete contents of `sb`.

The text is copied from the supplied `StringBuilder` and becomes the input for a later call to `ToXml`, `Xml`, or `ToXmlSb`. Returns `True` on success and `False` on failure.

Returns True for success, False for failure.

### HtmlToXml.ToXml

`Chilkat 11.7.0 · python · HtmlToXml · ToXml · method`

```python
string ToXml()
```

Converts the current `Html` input to well-formed XML and returns the XML string. The generated XML uses the conversion settings currently configured on this object, including `DropCustomTags`, dropped tag types, `Nbsp`, and `XmlCharset`.

**HTML normalization:** The input is parsed as HTML, so it does not need to already be well-formed XML. Chilkat can repair incomplete or malformed markup. The generated document is wrapped in a root element, and Chilkat represents ordinary text content in `<text>` elements to make extraction with XML tools straightforward.

Returns an empty string on failure. Check the `LastMethodSuccess` property to determine success or failure.

### HtmlToXml.ToXmlSb

`Chilkat 11.7.0 · python · HtmlToXml · ToXmlSb · method · since 9.5.0.77`

```python
bool ToXmlSb(StringBuilder sb)
```

Converts the current `Html` input to well-formed XML and appends the generated XML to `sb`.

Returns `True` on success and `False` on failure. Because the result is appended, clear the destination `StringBuilder` first when replacement rather than concatenation is desired.

Returns True for success, False for failure.

### HtmlToXml.UndropTagType

`Chilkat 11.7.0 · python · HtmlToXml · UndropTagType · method`

```python
void UndropTagType(string tagName)
```

Reverses a previous `DropTagType` setting for the specified tag name so that tag type is no longer intentionally dropped from subsequent XML output.

This affects only the named tag type. Other tag types previously configured to be dropped remain unchanged.

### HtmlToXml.UndropTextFormattingTags

`Chilkat 11.7.0 · python · HtmlToXml · UndropTextFormattingTags · method`

```python
void UndropTextFormattingTags()
```

Configures the converter to retain the common text-formatting tags that are otherwise dropped by default:

`b`, `font`, `i`, `u`, `br`, `center`, `em`, `strong`, `big`, `tt`, `s`, `small`, `strike`, `sub`, and `sup`.

Call `DropTextFormattingTags` to return to dropping these formatting tags.

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `ReadFile` | method | before 11.6.1 | — |
| `ReadFileToString` | method | before 11.6.1 | — |
| `WriteFile` | method | before 11.6.1 | — |
| `WriteStringToFile` | method | before 11.6.1 | — |

## Related classes

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

