小编GKo*_*tos的帖子

使用 Python ElementTree/ElementInclude 和 xpointer 访问包含的 XML 文件

我有一个包含 2 个 'sub_x.xml' 文件的 'main.xml' 文件。包含行使用“xpointer”来仅指向/包含包含 xml 的特定标签。当我使用 ElementTree 来确定这是否正常工作时,它表明包含了整个“sub”xml 文件,而不仅仅是我想要的标签。我不确定我是否错误地使用了 xpointer 或者 ElementTree 或 ElementInclude 不支持这一点。以下是文件:

------'main.xml'--------

`<?xml version='1.0' encoding='utf-8'?>
<ModelInfo xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:include href="sub_1.xml" xpointer="xpointer(//ModelInfo/Model)" parse="xml" />
    <xi:include href="sub_2.xml" xpointer="xpointer(//ModelInfo/Model)" parse="xml" />  
</ModelInfo>`
Run Code Online (Sandbox Code Playgroud)

-------'sub_1.xml'------

`<?xml version="1.0" ?>
<ModelInfo>
  <Model ModelName="glow">
    <Variables>
     <Variable Alias="glow_val" Input="False" Output="True" />
    </Variables>
  </Model>
</ModelInfo>`
Run Code Online (Sandbox Code Playgroud)

-------'sub_2.xml'------

`<?xml version='1.0' encoding='utf-8'?>
<ModelInfo>
  <Model ModelName="sirpwr_b_supply8v1">
   <Variables>
    <Variable Alias="sirpwr_a_supplyecu_Snsr8vIstat" Input="True" Output="False" />
   </Variables>
  </Model>
</ModelInfo>`
Run Code Online (Sandbox Code Playgroud)

我希望 'main.xml' 在 ElementTree 中显示为:

`<?xml version='1.0' encoding='utf-8'?>
<ModelInfo xmlns:xi="http://www.w3.org/2001/XInclude">
  <Model ModelName="glow">
    <Variables> …
Run Code Online (Sandbox Code Playgroud)

python xml xinclude elementtree xpointer

5
推荐指数
1
解决办法
2458
查看次数

标签 统计

elementtree ×1

python ×1

xinclude ×1

xml ×1

xpointer ×1