下面是我的输入file.xml
:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="so_project" id="Project-9999">
<schema name="database1">
<table name="table1">
<column name="foo" type="int"/>
<column name="bar" type="string"/>
<column name="details_resolution" type="array[object]">
<column name="timestamp" type="timestamp"/>
<column name="user_id" type="string"/>
<column name="user_name" type="string"/>
</column>
<column name="details_closure" type="array[object]">
<column name="timestamp" type="timestamp"/>
<column name="auto_closure" type="bool"/>
</column>
</table>
</schema>
<schema name="database2">
<table name="table1">
<column name="foo" type="int"/>
<column name="bar" type="string"/>
<column name="details" type="array[object]">
<column name="timestamp" type="timestamp"/>
<column name="value" type="float"/>
</column>
</table>
</schema>
</project>
字符串
..我试着做一个经典的嵌套dict:
{
"database1": {
"table1": {
"foo": "int",
"bar": "string",
"details_resolution": {
"timestamp": "timestamp",
"user_id": "string",
"user_name": "string"
},
"details_closure": {
"timestamp": "timestamp",
"auto_closure": "bool"
}
}
},
"database2": {
"table1": {
"foo": "int",
"bar": "string",
"details": {
"timestamp": "timestamp",
"value": "float"
}
}
}
}
型
- PS:每个数据库最终可以有多个表。*
我尝试了一些人工智能代码,但没有一个给我预期的结果。
我很抱歉,伙计们,不能显示我的尝试!
所以,任何帮助都将是非常感谢的。
3条答案
按热度按时间6vl6ewon1#
使用beautifulsoup的解决方案:
字符串
印刷品:
型
qlfbtfca2#
可以使用
xml.etree.ElementTree
字符串
6mzjoqzu3#
在XSLT 3.0中:
字符串
请参阅https://xsltfiddle.liberty-development.net/bdvWh3以获取完整的样式表,包括样板文件。
说明:
schema
元素,跳过project
级别。@name
作为键,@type
作为相应的值。