Can encode in XML!

This commit is contained in:
Mike Farah 2021-12-21 16:59:09 +11:00
parent 2ee9c65bc2
commit ca1c5dab59
2 changed files with 11 additions and 8 deletions

View File

@ -291,6 +291,7 @@ will output
<cool id="hi"> <cool id="hi">
<foo>bar</foo> <foo>bar</foo>
</cool> </cool>
``` ```
## Encode value as xml string on a single line ## Encode value as xml string on a single line
@ -308,6 +309,7 @@ yq eval '.a | @xml' sample.yml
will output will output
```yaml ```yaml
<cool id="hi"><foo>bar</foo></cool> <cool id="hi"><foo>bar</foo></cool>
``` ```
## Encode value as xml string with custom indentation ## Encode value as xml string with custom indentation
@ -320,13 +322,14 @@ a:
``` ```
then then
```bash ```bash
yq eval '.a | to_xml(1)' sample.yml yq eval '{"cat": .a | to_xml(1)}' sample.yml
``` ```
will output will output
```yaml ```yaml
<cool id="hi"> cat: |
<foo>bar</foo> <cool id="hi">
</cool> <foo>bar</foo>
</cool>
``` ```
## Decode a xml encoded string ## Decode a xml encoded string

View File

@ -173,7 +173,7 @@ var encoderDecoderOperatorScenarios = []expressionScenario{
document: `{a: {cool: {foo: "bar", +id: hi}}}`, document: `{a: {cool: {foo: "bar", +id: hi}}}`,
expression: `.a | to_xml`, expression: `.a | to_xml`,
expected: []string{ expected: []string{
"D0, P[a], (!!str)::<cool id=\"hi\">\n <foo>bar</foo>\n</cool>\n", "D0, P[a], (!!str)::<cool id=\"hi\">\n <foo>bar</foo>\n</cool>\n\n",
}, },
}, },
{ {
@ -181,15 +181,15 @@ var encoderDecoderOperatorScenarios = []expressionScenario{
document: `{a: {cool: {foo: "bar", +id: hi}}}`, document: `{a: {cool: {foo: "bar", +id: hi}}}`,
expression: `.a | @xml`, expression: `.a | @xml`,
expected: []string{ expected: []string{
"D0, P[a], (!!str)::<cool id=\"hi\"><foo>bar</foo></cool>\n", "D0, P[a], (!!str)::<cool id=\"hi\"><foo>bar</foo></cool>\n\n",
}, },
}, },
{ {
description: "Encode value as xml string with custom indentation", description: "Encode value as xml string with custom indentation",
document: `{a: {cool: {foo: "bar", +id: hi}}}`, document: `{a: {cool: {foo: "bar", +id: hi}}}`,
expression: `.a | to_xml(1)`, expression: `{"cat": .a | to_xml(1)}`,
expected: []string{ expected: []string{
"D0, P[a], (!!str)::<cool id=\"hi\">\n <foo>bar</foo>\n</cool>\n", "D0, P[], (!!map)::cat: |\n <cool id=\"hi\">\n <foo>bar</foo>\n </cool>\n",
}, },
}, },
{ {