我有一个用lxml解析过的plist。感谢用户的帮助,我有一整套要添加的项目,格式正确,可以添加。我现在遇到的麻烦是使用2个不同级别的xml文件来选择放置它的位置。如果我有以下内容,我怎么能确保将我的文字插入" WUT"在使用" Notes"的集合中和" 13",而不是"图书"和" 13"?或者反过来?
<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>
理想情况下,我的新plist看起来像:
<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>
我尝试过使用xpath并运行。
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)
但数据仅在最后一次&#34; 13&#34;之后插入。而不是我想要定义的那个。
答案 0 :(得分:1)
在python中有一个很好的用于解析XML的库,名为BeautifulSoup。请查看以下链接。
我确信这不是你想要的答案,但有时教一个人钓鱼会更好。