使用lxml解析包含重复元素的文件

问题描述 投票:0回答:1

我正在尝试处理 GDML 文件,这不是我所说的平面结构。

而不是

   <materials>
   <define>
   <solids>
   <structure>

具有单个元件

我现在正在尝试使用

处理文件
    <materials>
    <define>
    <solids>
    <define>
    <solids>
    <define>
    <solids>
    <structure>`

实体对前面的定义中的定义使用相同的名称。 可以用 lxml 处理这种结构吗?如果是,最好的方法是什么。

需要有关如何解决这种情况的建议,因为当前的实现只能找到最后的定义信息。

lxml
1个回答
0
投票

https://gdml.web.cern.ch/GDML/gdmlexample.html 是一个示例吗?那么看来您可以使用 XSLT 和键,例如

<xsl:key name="material" match="material" use="@name"/>
然后在处理时,例如
<structure><volume><materialref ref="Air"/>...
您可以使用例如
key('material', materialref/@ref)
查找引用的
material
元素。

© www.soinside.com 2019 - 2024. All rights reserved.