mirror of
https://github.com/vlang/v.git
synced 2025-08-04 02:07:28 -04:00
180 lines
3.6 KiB
V
180 lines
3.6 KiB
V
module main
|
|
|
|
import encoding.xml
|
|
|
|
fn test_node() {
|
|
nodes := [
|
|
xml.XMLNode{
|
|
name: 'test'
|
|
attributes: {
|
|
'test:key': ' test_value '
|
|
'test:other': '123456'
|
|
}
|
|
children: [
|
|
xml.XMLNode{
|
|
name: 'child'
|
|
attributes: {
|
|
'child:key': 'child_value'
|
|
}
|
|
},
|
|
'Sample text',
|
|
]
|
|
},
|
|
xml.XMLNode{
|
|
name: 's'
|
|
attributes: {
|
|
'k': 'v'
|
|
}
|
|
children: [
|
|
'Hello, world!',
|
|
xml.XMLNode{
|
|
name: 'c'
|
|
attributes: {
|
|
'k2': 'v2'
|
|
}
|
|
},
|
|
]
|
|
},
|
|
xml.XMLNode{
|
|
name: 'ext'
|
|
attributes: {
|
|
'uri': '{B58B0392-4F1F-4190-BB64-5DF3571DCE5F}'
|
|
'xmlns:xcalcf': 'http://schemas.microsoft.com/office/spreadsheetml/2018/calcfeatures'
|
|
}
|
|
children: [
|
|
xml.XMLNode{
|
|
name: 'xcalcf:calcFeatures'
|
|
children: [
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:RD'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:Single'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:FV'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:CNMTM'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:LET_WF'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:LAMBDA_WF'
|
|
}
|
|
},
|
|
xml.XMLNode{
|
|
name: 'xcalcf:feature'
|
|
attributes: {
|
|
'name': 'microsoft.com:ARRAYTEXT_WF'
|
|
}
|
|
},
|
|
]
|
|
},
|
|
]
|
|
},
|
|
]
|
|
values := [
|
|
'
|
|
<test test:key=" test_value " test:other="123456">
|
|
<child child:key="child_value"/>
|
|
Sample text
|
|
</test>'.trim_indent(),
|
|
'
|
|
<s k="v">
|
|
Hello, world!
|
|
<c k2="v2"/>
|
|
</s>'.trim_indent(),
|
|
'
|
|
<ext uri="{B58B0392-4F1F-4190-BB64-5DF3571DCE5F}" xmlns:xcalcf="http://schemas.microsoft.com/office/spreadsheetml/2018/calcfeatures">
|
|
<xcalcf:calcFeatures>
|
|
<xcalcf:feature name="microsoft.com:RD"/>
|
|
<xcalcf:feature name="microsoft.com:Single"/>
|
|
<xcalcf:feature name="microsoft.com:FV"/>
|
|
<xcalcf:feature name="microsoft.com:CNMTM"/>
|
|
<xcalcf:feature name="microsoft.com:LET_WF"/>
|
|
<xcalcf:feature name="microsoft.com:LAMBDA_WF"/>
|
|
<xcalcf:feature name="microsoft.com:ARRAYTEXT_WF"/>
|
|
</xcalcf:calcFeatures>
|
|
</ext>'.trim_indent(),
|
|
]
|
|
for i, node in nodes {
|
|
assert node.pretty_str('\t', 0, xml.default_entities_reverse) == values[i]
|
|
}
|
|
}
|
|
|
|
fn test_doc() {
|
|
docs := [
|
|
xml.XMLDocument{
|
|
root: xml.XMLNode{
|
|
name: 'test'
|
|
attributes: {
|
|
'test:key': ' test_value '
|
|
'test:other': '123456'
|
|
}
|
|
children: [
|
|
xml.XMLNode{
|
|
name: 'child'
|
|
attributes: {
|
|
'child:key': 'child_value'
|
|
}
|
|
},
|
|
'Sample text',
|
|
]
|
|
}
|
|
},
|
|
xml.XMLDocument{
|
|
root: xml.XMLNode{
|
|
name: 's'
|
|
attributes: {
|
|
'k': 'v'
|
|
}
|
|
children: [
|
|
'Hello, world!',
|
|
xml.XMLNode{
|
|
name: 'c'
|
|
attributes: {
|
|
'k2': 'v2'
|
|
}
|
|
},
|
|
]
|
|
}
|
|
},
|
|
]
|
|
values := [
|
|
'
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<test test:key=" test_value " test:other="123456">
|
|
<child child:key="child_value"/>
|
|
Sample text
|
|
</test>'.trim_indent(),
|
|
'
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<s k="v">
|
|
Hello, world!
|
|
<c k2="v2"/>
|
|
</s>'.trim_indent(),
|
|
]
|
|
for i, doc in docs {
|
|
assert doc.pretty_str('\t') == values[i]
|
|
}
|
|
}
|