繁体   English   中英

使用 etree 创建 XML

[英]Create an XML using etree

我正在尝试创建这个:

<View>
  <Text name="text" value="$text" />
<View style="box-shadow: 2px 2px 5px #999;padding: 20px; margin-top: 2em;border-radius: 5px;display: flex; justify-content: space-between; background: #f5dcdc;">
  <Choices toName="text" name="label1">
    <Header value="label1"/>
    <Choice value="modality1"/>
    <Choice value="modality2"/>
    <Choice value="modality3"/>
  </Choices>
  <Choices toName="text" name="label2">
    <Header value="label2"/>
    <Choice value="modality1"/>
    <Choice value="modality2"/>
    <Choice value="modality3"/>
  </Choices>
  </View>
</View>

但是,当我使用以下命令开始我的代码时:

    root = etree.Element("View")
    textelem = etree.SubElement(root, "Text")
    ###
    stylelem = etree.SubElement(root, "style")
    styledict = {"View":"box-shadow: 2px 2px 5px #999;padding: 20px; margin-top: 2em;border-radius: 5px;display: flex; justify-content: center; background: #f5dcdc;"}
    for key, val in styledict.items():
        stylelem.set(key, val)
    ###
    dictattrib = {
        "name": "text",
        "value": "$text"
    }
    for key, val in dictattrib.items():
        textelem.set(key, val)

我明白了:

<View>
  <Text name="text" value="$text"/>
  <View style="box-shadow: 2px 2px 5px #999;padding: 20px; margin-top: 2em;border-radius: 5px;display: flex; justify-content: center; background: #f5dcdc;"/>
  <Header value="label1"/>
  <Choices toName="text" name="label1">
    <Choice value="modality1"/>
    <Choice value="modality2"/>
    <Choice value="modality3"/>
  </Choices>
  <Header value="label2"/>
  <Choices toName="text" name="label2">
    <Choice value="modality1"/>
    <Choice value="modality2"/>
  </Choices>
</View>

任何人都知道如何更改以获取非结束标签并最终获得结束标签?

它应该在这里产生结果: https ://labelstud.io/playground/

简单的答案是将选项附加到视图而不是根。 这将在 View 中创建一个选择的子树,它会在您调用它时打开和关闭。 不要使用字符串修改 xml,它有选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM