求助怎么用Python生成如下的xml内容
本帖最后由 lxt69826400 于 2020-1-13 22:30 编辑求问如何用python生成?,查遍了网上各种资料,怎奈对lxml库和命名空间的理解太浅薄,怎么试都没法原因生成,求指导。
主要是卡在`xmlns:msdata="urn:schemas-microsoft-com:xml-msdata`这个位置,怎么都不对
```
<table>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="table" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element name="index" type="xs:string" minOccurs="0"/>
<xs:element name="identifier" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
</table>
``` 本帖最后由 huayugongju 于 2020-1-13 23:02 编辑
其实就是用代码 格式化XML字符串
def getSpace(level):
space='\n'
for i in range(level):
space=space+' '
return space
# 格式化 XML 字符串#
def printXml(xml_str):
#xml_list=xml_str.split('([>])')
new_xml_list=""
# head=xml_str
# xml_str=xml_str
xml_list=re.split(r'([>])',xml_str)
xml_list = ["".join(i) for i in zip(xml_list,xml_list)]
level=0
for node in xml_list:
if(re.match(r'<\?xml .*version.*\?>',node)):
new_xml_list=new_xml_list+new_xml_list+node
continue
elif(re.match(r'<[^\?^/].*[^/]>',node)):
new_xml_list=new_xml_list+getSpace(level)+node
level=level+1
continue
elif(re.match(r'</.*[^/]>',node)):
level=level-1
new_xml_list=new_xml_list+getSpace(level)+node
continue
elif(re.match(r'<[^/].*/>',node)):
new_xml_list=new_xml_list+getSpace(level)+node
elif(re.match(r'.+</.*[^/]>',node)):
new_xml_list=new_xml_list+node
level=level-1
else:
print(node)
# print(new_xml_list)
return new_xml_list
看看,学习学习! 好好看,好好学~~!! 看一下,学习了。谢谢
页:
[1]