mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
wip
This commit is contained in:
parent
e16167ff26
commit
3c7ccf0bc4
@ -91,6 +91,10 @@ func (dec *xmlDecoder) createMap(n *xmlNode) (*yaml.Node, error) {
|
||||
|
||||
if i == 0 {
|
||||
labelNode.HeadComment = dec.processComment(n.HeadComment)
|
||||
|
||||
}
|
||||
|
||||
if i == len(n.Children)-1 {
|
||||
labelNode.FootComment = dec.processComment(n.FootComment)
|
||||
}
|
||||
|
||||
|
@ -22,3 +22,48 @@ XML nodes that have attributes then plain content, e.g:
|
||||
|
||||
The content of the node will be set as a field in the map with the key "+content". Use the `--xml-content-name` flag to change this.
|
||||
|
||||
## Round trip: with comments
|
||||
A best effort is made, but comment positions and white space are not preserved perfectly.
|
||||
|
||||
Given a sample.xml file of:
|
||||
```xml
|
||||
|
||||
<!-- before cat -->
|
||||
<cat>
|
||||
<!-- in cat before -->
|
||||
<x>3<!-- multi
|
||||
line comment
|
||||
for x --></x>
|
||||
<!-- before y -->
|
||||
<y>
|
||||
<!-- in y before -->
|
||||
<d><!-- in d before -->z<!-- in d after --></d>
|
||||
|
||||
<!-- in y after -->
|
||||
</y>
|
||||
<!-- in_cat_after -->
|
||||
</cat>
|
||||
<!-- after cat -->
|
||||
|
||||
```
|
||||
then
|
||||
```bash
|
||||
yq e -p=xml '.' sample.xml
|
||||
```
|
||||
will output
|
||||
```yaml
|
||||
# before cat
|
||||
cat:
|
||||
# in cat before
|
||||
x: "3" # multi
|
||||
# line comment
|
||||
# for x
|
||||
y:
|
||||
# in y before
|
||||
# in d before
|
||||
d: z # in d after
|
||||
# in y after
|
||||
# before y in_cat_after
|
||||
# after cat
|
||||
```
|
||||
|
||||
|
@ -254,13 +254,13 @@ var xmlScenarios = []xmlScenario{
|
||||
// expected: expectedXmlWithComments,
|
||||
// scenarioType: "encode",
|
||||
// },
|
||||
// {
|
||||
// description: "Round trip: with comments",
|
||||
// subdescription: "A best effort is made, but comment positions and white space are not preserved perfectly.",
|
||||
// input: inputXmlWithComments,
|
||||
// expected: expectedRoundtripXmlWithComments,
|
||||
// scenarioType: "roundtrip",
|
||||
// },
|
||||
{
|
||||
description: "Round trip: with comments",
|
||||
subdescription: "A best effort is made, but comment positions and white space are not preserved perfectly.",
|
||||
input: inputXmlWithComments,
|
||||
expected: expectedRoundtripXmlWithComments,
|
||||
scenarioType: "roundtrip",
|
||||
},
|
||||
}
|
||||
|
||||
func testXmlScenario(t *testing.T, s xmlScenario) {
|
||||
|
Loading…
Reference in New Issue
Block a user