【发布时间】:2021-05-08 02:59:15
【问题描述】:
我正在使用 LXML 来处理现有的 XML 块,我想要:
- 如果标签存在则更改元素值
- 如果不存在,则创建元素
(2)的问题是:将元素插入块内的正确位置,其中大部分元素是可选的。注意:有一个定义结构的 XSD。
例如,我想插入<d>,如果存在,它将出现在<c>之后,否则在<b>之后,如果存在,否则在<a>之后
<OuterElement>
<a>value of a</a> --- Optional
<b>value of b</b> --- Optional
<c>value of c</c> --- Optional
<d>value of d</d>
<e>value of e</e> --- Optional
</OuterElement>
实现这一目标的最简洁/最简单的方法是什么?目前我正在使用 XPath 表达式循环元素 - 这感觉相当 hacky。
【问题讨论】:
-
那么架构看起来究竟如何?
-
不幸的是,我无法将确切的架构放在这里,但是上面 OuterElement 示例中的每个元素都有 minOccurs=0,因此使其成为可选的。我不确定如何轻松计算出最后一个可选元素,以便将
<d>放置在正确的位置 -
OuterElement的子元素是定义为序列还是选择? -
它们被定义为一个序列
标签: python xml xslt xpath lxml