Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 38 additions & 5 deletions docs/v6/1.GettingStarted.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@


Example with no configuration
Example with no configuration (ESM)

```js
const XMLParser = require("fast-xml-parser/src/v6/XMLParser")
import { XMLParser } from "fast-xml-parser/v6";

const parser = new XMLParser();
//read xmlData your own
let result = parser.parse(xmlData, true);
// read xmlData your own
const result = parser.parse("<root>ok</root>");
```

CommonJS (via dynamic import)

```js
(async () => {
const { XMLParser } = await import("fast-xml-parser/v6");
const parser = new XMLParser();
const result = parser.parse("<root>ok</root>");
console.log(result);
})();
```

The default response of parse is built by `JsObjOutputBuilder`. FXP v6 comes with 2 more output builders. And you can set your custom output builder too to customize the output.

```js
const JsObjOutputBuilder = require("fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder");
import { XMLParser, JsObjOutputBuilder } from "fast-xml-parser/v6";

const parser = new XMLParser({
OutputBuilder: new JsObjOutputBuilder()
Expand All @@ -21,4 +33,25 @@ const parser = new XMLParser({
let result = parser.parse(xmlData, true);
```

## Types (TypeScript)

You can import types for v6 directly from the package subpath:

```ts
import type { V6ParserOptions, V6BuilderOptions } from 'fast-xml-parser/v6';
import { XMLParser, JsObjOutputBuilder } from 'fast-xml-parser/v6';

const builderOpts: V6BuilderOptions = {
nameFor: { text: '#text' }
};

const parserOpts: V6ParserOptions = {
attributes: { ignore: false, booleanType: true },
OutputBuilder: new JsObjOutputBuilder(builderOpts)
};

const parser = new XMLParser(parserOpts);
const result = parser.parse('<root>1</root>');
```


58 changes: 46 additions & 12 deletions docs/v6/3.Options.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,34 +86,68 @@ Eg.

By default `JsObjOutputBuilder` output builder is used with default options.

### TypeScript usage (recommended)

Example
Import types and classes from the v6 subpath for best DX:

```ts
import type { V6ParserOptions, V6BuilderOptions } from 'fast-xml-parser/v6';
import { XMLParser, JsObjOutputBuilder } from 'fast-xml-parser/v6';

const builderOpts: V6BuilderOptions = {
// onAttribute: (name, value, tagName) => ({ name, value })
};

const parserOpts: V6ParserOptions = {
attributes: { ignore: false, booleanType: true },
OutputBuilder: new JsObjOutputBuilder(builderOpts),
};

const parser = new XMLParser(parserOpts);
const result = parser.parse('<root>1</root>');
```

If you only need types, prefer `import type` so they’re erased at compile time.

### JavaScript (ESM)

```js
const XMLParser = require("fast-xml-parse/src/v6/XMLParser");
const JsObjOutputBuilder = require("fast-xml-parse/src/v6/OutputBuilders/JsObjBuilder");
const JsArrBuilder = require("fast-xml-parse/src/v6/OutputBuilders/JsArrBuilder");
const JsMinArrBuilder = require("fast-xml-parse/src/v6/OutputBuilders/JsMinArrBuilder");
import { XMLParser, JsObjOutputBuilder, JsArrOutputBuilder, JsMinArrOutputBuilder } from 'fast-xml-parser/v6';
import fs from 'node:fs';

const xmlData = fs.readFileSync("sample.xml").toString();
const xmlData = fs.readFileSync('sample.xml', 'utf8');

const outputBuilderOptions = {
onAttribute: (name, value, tagName) => {
console.log(name, value, tagName)
console.log(name, value, tagName);
}
};

const parserOptions = {
attributes: {
ignore: false,
booleanType:true
ignore: false,
booleanType: true
},

OutputBuilder: new JsObjOutputBuilder(outputBuilderOptions)
};

const parser = new XMLParser(parserOptions);
let result = parser.parse(xmlData);
const result = parser.parse(xmlData);

console.log(JSON.stringify(result,null,4));
console.log(JSON.stringify(result, null, 4));
```

### CommonJS (via dynamic import)

```js
(async () => {
const { XMLParser, JsObjOutputBuilder } = await import('fast-xml-parser/v6');
const xmlData = require('node:fs').readFileSync('sample.xml', 'utf8');
const parser = new XMLParser({
attributes: { ignore: false, booleanType: true },
OutputBuilder: new JsObjOutputBuilder()
});
const result = parser.parse(xmlData);
console.log(JSON.stringify(result, null, 4));
})();
```
16 changes: 16 additions & 0 deletions docs/v6/4.OutputBuilders.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ All 3 available output builders are
### Output builders
You can use provided output builds or your own output builder.

TypeScript usage

```ts
import type { V6BuilderOptions } from 'fast-xml-parser/v6';
import { JsObjOutputBuilder, JsArrOutputBuilder, JsMinArrOutputBuilder } from 'fast-xml-parser/v6';

const opts: V6BuilderOptions = {
nameFor: { text: '#text' },
attributes: { prefix: '@_', suffix: '' }
};

const objBuilder = new JsObjOutputBuilder(opts);
const arrBuilder = new JsArrOutputBuilder(opts);
const minArrBuilder = new JsMinArrOutputBuilder(opts);
```

JsObjOutputBuilder
```js
{
Expand Down
Loading