js-apis-convertxml.md 5.1 KB
Newer Older
W
wusongqing 已提交
1
# XML-to-JavaScript Conversion
Z
zengyawen 已提交
2

W
wusongqing 已提交
3 4 5 6
The **convertxml** module provides APIs for converting XML text into JavaScript objects.

> **NOTE**
>
W
wusongqing 已提交
7
> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
Z
zengyawen 已提交
8

W
wusongqing 已提交
9 10

## Modules to Import
Z
zengyawen 已提交
11

W
wusongqing 已提交
12
```js
Z
zengyawen 已提交
13 14 15
import convertxml from '@ohos.convertxml';
```

W
wusongqing 已提交
16
## ConvertXML
Z
zengyawen 已提交
17 18


W
wusongqing 已提交
19
### convert
Z
zengyawen 已提交
20

W
wusongqing 已提交
21
convert(xml: string, options?: ConvertOptions) : Object
Z
zengyawen 已提交
22

W
wusongqing 已提交
23
Converts an XML text into a JavaScript object.
Z
zengyawen 已提交
24

W
wusongqing 已提交
25
**System capability**: SystemCapability.Utils.Lang
Z
zengyawen 已提交
26

W
wusongqing 已提交
27

W
wusongqing 已提交
28
**Parameters**
W
wusongqing 已提交
29

W
wusongqing 已提交
30 31 32
| Name | Type                             | Mandatory| Description           |
| ------- | --------------------------------- | ---- | --------------- |
| xml     | string                            | Yes  | XML text to convert.|
N
Neil Chen 已提交
33
| options | [ConvertOptions](#convertoptions) | No  | Options for conversion.     |
W
wusongqing 已提交
34

W
wusongqing 已提交
35
**Return value**
W
wusongqing 已提交
36

W
wusongqing 已提交
37 38 39
| Type  | Description                        |
| ------ | ---------------------------- |
| Object | JavaScript object.|
W
wusongqing 已提交
40

W
wusongqing 已提交
41
**Example**
W
wusongqing 已提交
42

W
wusongqing 已提交
43 44 45 46 47 48 49 50 51 52
```js
let xml =
    '<?xml version="1.0" encoding="utf-8"?>' +
    '<note importance="high" logged="true">' +
    '    <title>Happy</title>' +
    '    <todo>Work</todo>' +
    '    <todo>Play</todo>' +
    '</note>';
let conv = new convertxml.ConvertXML();
let options = {trim : false, declarationKey:"_declaration",
W
wusongqing 已提交
53 54 55 56
    instructionKey : "_instruction", attributesKey : "_attributes",
    textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
    commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
    nameKey : "_name", elementsKey : "_elements"}
W
wusongqing 已提交
57 58
let result = JSON.stringify(conv.convert(xml, options));
console.log(result)
59 60
// Output(Non compact)
// {"_declaration":{"_attributes":{"version":"1.0","encoding":"utf-8"}},"_elements":[{"_type":"element","_name":"note","_attributes":{"importance":"high","logged":"true"},"_elements":[{"_type":"element","_name":"title","_elements":[{"_type":"text","_text":"Happy"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Work"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Play"}]}]}]}
W
wusongqing 已提交
61
```
W
wusongqing 已提交
62 63 64

## ConvertOptions

N
Neil Chen 已提交
65
Options for conversion.
W
wusongqing 已提交
66 67 68 69

**System capability**: SystemCapability.Utils.Lang

| Name             | Type| Mandatory| Description                                                       |
W
wusongqing 已提交
70
| ----------------- | -------- | ---- | ----------------------------------------------------------- |
W
wusongqing 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| trim              | boolean  | Yes  | Whether to trim the whitespace characters before and after the text. The default value is **false**.                |
| ignoreDeclaration | boolean  | No  | Whether to ignore the XML declaration. The default value is **false**.                       |
| ignoreInstruction | boolean  | No  | Whether to ignore the XML processing instruction. The default value is **false**.                     |
| ignoreAttributes  | boolean  | No  | Whether to print attributes across multiple lines and indent attributes. The default value is **false**.                  |
| ignoreComment     | boolean  | No  | Whether to ignore element comments. The default value is **false**.                        |
| ignoreCDATA       | boolean  | No  | Whether to ignore the element's CDATA information. The default value is **false**.                       |
| ignoreDoctype     | boolean  | No  | Whether to ignore the element's Doctype information. The default value is **false**.                     |
| ignoreText        | boolean  | No  | Whether to ignore the element's text information. The default value is **false**.                        |
| declarationKey    | string   | Yes  | Name of the attribute key for **declaration** in the output object. The default value is **_declaration**.|
| instructionKey    | string   | Yes  | Name of the attribute key for **instruction** in the output object. The default value is **_instruction**.|
| attributesKey     | string   | Yes  | Name of the attribute key for **attributes** in the output object. The default value is **_attributes**.  |
| textKey           | string   | Yes  | Name of the attribute key for **text** in the output object. The default value is **_text**.              |
| cdataKey          | string   | Yes  | Name of the attribute key for **CDATA** in the output object. The default value is **_cdata**.            |
| doctypeKey        | string   | Yes  | Name of the attribute key for **Doctype** in the output object. The default value is **_doctype**.        |
| commentKey        | string   | Yes  | Name of the attribute key for **comment** in the output object. The default value is **_comment**.        |
| parentKey         | string   | Yes  | Name of the attribute key for **parent** in the output object. The default value is **_parent**.          |
| typeKey           | string   | Yes  | Name of the attribute key for **type** in the output object. The default value is **_type**.              |
| nameKey           | string   | Yes  | Name of the attribute key for **name** in the output object. The default value is **_name**.              |
| elementsKey       | string   | Yes  | Name of the attribute key for **elements** in the output object. The default value is **_elements**.      |