我有以下 xml 節點。
<offer id="SD00025386">
<picture>https://isw.b2b-sandi.com.ua/imagecache/full/1/9/19289.jpg</picture>
<picture>https://isw.b2b-sandi.com.ua/imagecache/full/1/9/19289/19289_1.jpg</picture>
<name>Трап ANI Plast TA1612 горизонтальний з нержав?ючою реш?ткою 150x150</name>
<available>true</available>
<oldCode>19289</oldCode>
<model>TA1612</model>
<purchase_price>405.158</purchase_price>
<currency>UAH</currency>
<retail_price>691</retail_price>
<retail_oldprice></retail_oldprice>
<retail_currency>UAH</retail_currency>
<outlets>
<outlet id="85" name="Харк?в" instock="1"></outlet>
<outlet id="86" name="Ки?в" instock="3"></outlet>
<outlet id="87" name="Укра?на" instock="16"></outlet>
</outlets>
<vendor>Ани Пласт</vendor>
<vendorCode>SD00025386</vendorCode>
</offer>
我想搜索供應商具有特定屬性的所有節點,例如
<vendor>Qtap</vendor>
并與該供應商一起復制到另一個 xml 整體報價節點。我可以使用搜索來搜索這個值,但是我必須手動復制 whall 節點。其中大約有2000個。例如,是否可以使用 Notepad 自動執行此操作,或者使用 PHP 或任何其他語言為此撰寫腳本將是一個更好的解決方案。
uj5u.com熱心網友回復:
如果我對您的理解正確,您可以使用 python、lxml 和 xpath 以及非常簡化的 xml 版本執行類似的操作,并提供兩個優惠:
from lxml import etree
offers = """<?xml version="1.0" encoding="UTF-8"?>
<offers>
<offer id="SD00025386">
<retail_currency>UAH</retail_currency>
<vendor>Ани Пласт</vendor>
<vendorCode>SD00025386</vendorCode>
</offer>
<offer id="SD11125386">
<retail_currency>USD</retail_currency>
<vendor>Qtap</vendor>
<vendorCode>SD11125386</vendorCode>
</offer>
</offers>
"""
doc = etree.XML(offers.encode())
target = doc.xpath('//offer[./vendor/text()="Qtap"]')[0]
print(etree.tostring(target).decode())
輸出:
<offer id="SD11125386">
<retail_currency>USD</retail_currency>
<vendor>Qtap</vendor>
<vendorCode>SD11125386</vendorCode>
</offer>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427381.html
上一篇:以格式讀取檔案和輸出
