吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1258|回复: 4
收起左侧

[求助] 求助怎么用Python生成如下的xml内容

[复制链接]
lxt69826400 发表于 2020-1-13 22:29
本帖最后由 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:01
本帖最后由 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[0:9]
    # xml_str=xml_str[9:]
    xml_list=re.split(r'([>])',xml_str)
    xml_list = ["".join(i) for i in zip(xml_list[0::2],xml_list[1::2])]
    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


17609259621 发表于 2020-1-14 09:23
rosoon 发表于 2020-1-14 09:34
会放电的皮卡丘 发表于 2020-1-14 10:05
看一下,学习了。谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表