嗨,我有一个大的xml文件,在这里我想分割成多个文件的xml文件的基础上的id(这里id是唯一的)。现在我有3个唯一的标记ID的xml文件,我想分裂他们。你知道吗
我的档案如下
main.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tal xmlns="http://hello.com" schemaVersion="5.0.0" refSchemaFile="tal.xsd" status="Executable">
<ExecProperties supportsParallelMostFlash="false"/>
<talLine id="tl_1" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<blFlash status="Executable">
<blFlashTA status="Executable">
<sgbmid>
<processClass>BTLD</processClass>
<id>00007732</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</blFlashTA>
<blFlashTA status="Executable">
<sgbmid>
<processClass>FLSL</processClass>
<id>00007735</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</blFlashTA>
</blFlash>
</talLine>
<talLine id="tl_2" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<swDeploy status="Executable">
<swDeployTA status="Executable">
<sgbmid>
<processClass>SWFL</processClass>
<id>00007736</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</swDeployTA>
<swDeployTA status="Executable">
<sgbmid>
<processClass>SWFL</processClass>
<id>00007bfc</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</swDeployTA>
</swDeploy>
</talLine>
<talLine id="tl_3" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<cdDeploy status="Executable">
<cdDeployTA status="Executable">
<sgbmid>
<processClass>CAFD</processClass>
<id>00006d4e</id>
<mainVersion>0</mainVersion>
<subVersion>4</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</cdDeployTA>
</cdDeploy>
</talLine>
<executionTime actualEndTime="0" actualStartTime="0" plannedEndTime="0" plannedStartTime="0"/>
<installedECUList_Ist/>
<installedECUList_Soll/>
</tal>
我需要每个“id”-在一个单独的文件与页眉和页脚(你可以观察下面的文件)的数据,上面是一个示例文件。我需要一个像下面这样的文件
1.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tal xmlns="http://hello.com" schemaVersion="5.0.0" refSchemaFile="tal.xsd" status="Executable">
<ExecProperties supportsParallelMostFlash="false"/>
<talLine id="tl_1" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<blFlash status="Executable">
<blFlashTA status="Executable">
<sgbmid>
<processClass>BTLD</processClass>
<id>00007732</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</blFlashTA>
<blFlashTA status="Executable">
<sgbmid>
<processClass>FLSL</processClass>
<id>00007735</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</blFlashTA>
</blFlash>
</talLine>
<executionTime actualEndTime="0" actualStartTime="0" plannedEndTime="0" plannedStartTime="0"/>
<installedECUList_Ist/>
<installedECUList_Soll/>
</tal>
2.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tal xmlns="http://hello.com" schemaVersion="5.0.0" refSchemaFile="tal.xsd" status="Executable">
<ExecProperties supportsParallelMostFlash="false"/>
<talLine id="tl_3" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<cdDeploy status="Executable">
<cdDeployTA status="Executable">
<sgbmid>
<processClass>CAFD</processClass>
<id>00006d4e</id>
<mainVersion>0</mainVersion>
<subVersion>4</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</cdDeployTA>
</cdDeploy>
</talLine>
<executionTime actualEndTime="0" actualStartTime="0" plannedEndTime="0" plannedStartTime="0"/>
<installedECUList_Ist/>
<installedECUList_Soll/>
</tal>
3.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tal xmlns="http://hello.com" schemaVersion="5.0.0" refSchemaFile="tal.xsd" status="Executable">
<ExecProperties supportsParallelMostFlash="false"/>
<talLine id="tl_2" status="Executable" baseVariant="DKOMBI8" diagAddress="60">
<swDeploy status="Executable">
<swDeployTA status="Executable">
<sgbmid>
<processClass>SWFL</processClass>
<id>00007736</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</swDeployTA>
<swDeployTA status="Executable">
<sgbmid>
<processClass>SWFL</processClass>
<id>00007bfc</id>
<mainVersion>2</mainVersion>
<subVersion>3</subVersion>
<patchVersion>11</patchVersion>
</sgbmid>
</swDeployTA>
</swDeploy>
</talLine>
<executionTime actualEndTime="0" actualStartTime="0" plannedEndTime="0" plannedStartTime="0"/>
<installedECUList_Ist/>
<installedECUList_Soll/>
</tal>
我试图用id删除一些特定的标记数据,但没有成功。你能给我一些更好的方法来实现我的目标吗。你知道吗
import xml.etree.ElementTree as ET
tree = ET.parse('main.xml')
root = tree.getroot()
mydata = root.find(".talLine[@id='tl_1']")
mydata.remove(mydata)
提前谢谢。你知道吗
我们只需要从根目录中找出标记的索引,清除它们并保存到新的xml文件中
然后输出将保存到新文件中
1.xml文件
但是这里我们面临的挑战是,我们需要避免在输出xml文件的每一行中使用ns0字符串
相关问题 更多 >
编程相关推荐