1
我有一個plist,我用lxml解析過。感謝這裏用戶的幫助,我有一整套我想要添加的項目,格式正確,並且可以添加它們。我現在遇到的麻煩是使用2個不同級別的xml文件來選擇放置它的位置。如果我有以下內容,我怎麼能確定將我的文本插入到同時使用「註釋」和「13」,而不是「書籍」和「13」的設置中的「WUT」?或者相反呢?使用2個級別的XML查找節點並添加字符串
<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)
但數據只在最後一個「13」後插入,而不是我想定義的那個。
無法重現。請發佈[mcve]。我在你的代碼片段中添加的嘗試將數據放在正確的位置。 –