Python 使用两级XML查找节点并添加字符串

Python 使用两级XML查找节点并添加字符串,python,xml,xpath,lxml,plist,Python,Xml,Xpath,Lxml,Plist,我用lxml解析了一个plist。多亏了这里的用户的帮助,我有一整套我想要添加的项目,格式正确,并且可以添加它们。我现在遇到的问题是使用两个不同级别的xml文件来选择将其放置在何处。如果我有以下内容,我如何确保在同时使用“Notes”和“13”的集合中,而不是在“Books”和“13”中,在“WUT”上插入我的文本?还是反过来 <root> <key>Title</key> <dict> <key>Set</key

我用lxml解析了一个plist。多亏了这里的用户的帮助,我有一整套我想要添加的项目,格式正确,并且可以添加它们。我现在遇到的问题是使用两个不同级别的xml文件来选择将其放置在何处。如果我有以下内容,我如何确保在同时使用“Notes”和“13”的集合中,而不是在“Books”和“13”中,在“WUT”上插入我的文本?还是反过来

<root>
  <key>Title</key>
  <dict>
    <key>Set</key>
    <dict>
      <key>Notes</key>
      <dict>
        <key>Tester</key>
        <array>
          <dict>
            <key>13</key>
            <dict>
              <key>Param</key>
              <array>
                <string>WUT</string>
              </array>
            </dict>
            <key>18</key>
            <dict>
              <key>Param</key>
              <array>
                <string>WUT</string>
              </array>
            </dict>
          </dict>
        </array>
      </dict>
    </dict>
    <dict>
      <key>Books</key>
      <dict>
        <key>Tester</key>
        <array>
          <dict>
            <key>13</key>
            <dict>
              <key>Param</key>
              <array>
                <string>WUT</string>
              </array>
            </dict>
          </dict>
        </array>
      </dict>
    </dict>
  </dict>
</root>

但是数据只在最后一个“13”之后插入,而不是我想定义的那个

python中有一个很好的XML解析库,名为BeautifulSoup。查看以下链接


我相信这不是你想要的答案,但有时最好教人钓鱼。

无法复制。请发一封信。我在代码段周围添加的尝试将数据放在正确的位置。
<root>
  <key>Title</key>
  <dict>
    <key>Set</key>
    <dict>
      <key>Notes</key>
      <dict>
        <key>Tester</key>
        <array>
          <dict>
            <key>13</key>
            <dict>
              <key>Param</key>
              <array>
                <string>1</string>
                <string>2</string>
                <string>3</string>
                <string>4</string>
                <string>5</string>
              </array>
            </dict>
            <key>18</key>
            <dict>
              <key>Param</key>
              <array>
                <string>WUT</string>
              </array>
            </dict>
          </dict>
        </array>
      </dict>
    </dict>
    <dict>
      <key>Books</key>
      <dict>
        <key>Tester</key>
        <array>
          <dict>
            <key>13</key>
            <dict>
              <key>Param</key>
              <array>
                <string>WUT</string>
              </array>
            </dict>
          </dict>
        </array>
      </dict>
    </dict>
  </dict>
</root>
for plist_title in tree.xpath('//dict[key="Notes"][1]')
    for plist_tester in plist_title.xpath('//dict[key="13"][1]')
        plist_tester.insert(1,myData)