js-apis-convertxml.md 6.5 KB
Newer Older
Z
zengyawen 已提交
1 2
# xml转换JavaScript

T
explain  
tianyu 已提交
3 4
本模块提供转换xml文本为JavaScript对象的选项。

Z
zengyawen 已提交
5
> **说明:**
6
>
Z
zengyawen 已提交
7 8 9 10 11
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

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

## ConvertXML

J
jiangkai43 已提交
18
### convertToJSObject<sup>9+</sup>
Z
zengyawen 已提交
19

J
jiangkai43 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
convertToJSObject(xml: string, options?: ConvertOptions) : Object

转换xml文本为JavaScript对象。

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名  | 类型                              | 必填 | 说明            |
| ------- | --------------------------------- | ---- | --------------- |
| xml     | string                            | 是   | 传入的xml文本。 |
| options | [ConvertOptions](#convertoptions) | 否   | 转换选项。      |

**返回值:**

| 类型   | 说明                         |
| ------ | ---------------------------- |
| Object | 处理后返回的JavaScript对象。 |

**示例:**

```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.convertToJSObject();
let options = {trim : false, declarationKey:"_declaration",
    instructionKey : "_instruction", attributesKey : "_attributes",
    textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
    commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
    nameKey : "_name", elementsKey : "_elements"}
let result = JSON.stringify(conv.convert(xml, options));
console.log(result);
// 输出(宽泛型)
// {"_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"}]}]}]}
```

### convert<sup>(deprecated)</sup>

63 64 65
> **说明:**
>
> 从API Version 8开始支持,从API Version 9开始废弃,建议使用[convertToJSObject9+](#converttojsobject9)替代。
Z
zengyawen 已提交
66 67 68

convert(xml: string, options?: ConvertOptions) : Object

Z
zengyawen 已提交
69
转换xml文本为JavaScript对象。
Z
zengyawen 已提交
70

Z
zengyawen 已提交
71
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
72

Z
zengyawen 已提交
73
**参数:**
Z
zengyawen 已提交
74

Z
zengyawen 已提交
75 76 77 78
| 参数名  | 类型                              | 必填 | 说明            |
| ------- | --------------------------------- | ---- | --------------- |
| xml     | string                            | 是   | 传入的xml文本。 |
| options | [ConvertOptions](#convertoptions) | 否   | 转换选项。      |
Z
zengyawen 已提交
79

Z
zengyawen 已提交
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
**返回值:**

| 类型   | 说明                         |
| ------ | ---------------------------- |
| Object | 处理后返回的JavaScript对象。 |

**示例:**

```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",
98 99 100 101
    instructionKey : "_instruction", attributesKey : "_attributes",
    textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
    commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
    nameKey : "_name", elementsKey : "_elements"}
Z
zengyawen 已提交
102
let result = JSON.stringify(conv.convert(xml, options));
103 104 105
console.log(result);
// 输出(宽泛型)
// {"_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"}]}]}]}
Z
zengyawen 已提交
106
```
Z
zengyawen 已提交
107 108 109

## ConvertOptions

Z
zengyawen 已提交
110 111 112 113
转换选项。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang

114
| 名称              | 类型 | 必填 | 说明                                                        |
Z
zengyawen 已提交
115
| ----------------- | -------- | ---- | ----------------------------------------------------------- |
L
lihucheng 已提交
116
| trim              | boolean  | 是   | 是否修剪位于文本前后的空白字符,默认false。                 |
Z
zengyawen 已提交
117 118 119 120
| ignoreDeclaration | boolean  | 否   | 是否忽略xml写入声明指示,默认false。                        |
| ignoreInstruction | boolean  | 否   | 是否忽略xml的写入处理指令,默认false。                      |
| ignoreAttributes  | boolean  | 否   | 是否跨多行打印属性并缩进属性,默认false。                   |
| ignoreComment     | boolean  | 否   | 是否忽略元素的注释信息,默认false。                         |
Z
zengyawen 已提交
121
| ignoreCDATA       | boolean  | 否   | 是否忽略元素的CDATA信息,默认false。                        |
Z
zengyawen 已提交
122 123
| ignoreDoctype     | boolean  | 否   | 是否忽略元素的Doctype信息,默认false。                      |
| ignoreText        | boolean  | 否   | 是否忽略元素的文本信息,默认false。                         |
L
lihucheng 已提交
124 125 126 127 128 129 130 131 132 133 134
| declarationKey    | string   | 是   | 用于输出对象中declaration的属性键的名称,默认_declaration。 |
| instructionKey    | string   | 是   | 用于输出对象中instruction的属性键的名称,默认_instruction。 |
| attributesKey     | string   | 是   | 用于输出对象中attributes的属性键的名称,默认_attributes。   |
| textKey           | string   | 是   | 用于输出对象中text的属性键的名称,默认_text。               |
| cdataKey          | string   | 是   | 用于输出对象中cdata的属性键的名称,默认_cdata。             |
| doctypeKey        | string   | 是   | 用于输出对象中doctype的属性键的名称,默认_doctype。         |
| commentKey        | string   | 是   | 用于输出对象中comment的属性键的名称,默认_comment。         |
| parentKey         | string   | 是   | 用于输出对象中parent的属性键的名称,默认_parent。           |
| typeKey           | string   | 是   | 用于输出对象中type的属性键的名称,默认_type。               |
| nameKey           | string   | 是   | 用于输出对象中name的属性键的名称,默认_name。               |
| elementsKey       | string   | 是   | 用于输出对象中elements的属性键的名称,默认_elements。       |