0
lxml.etreeを使用して、いくつかのサブタグを持つ1つのプライマリタグの下に複数のSubElementsを書きたいと思います。lxml.etreeを使って複数のSubElementを追加するには?
これは、タグを書き込むために使用しているコードです。
def create_SubElement(_parent, _tag, attrib={}, _text=None, nsmap=None, **_extra):
result = ET.SubElement(_parent, _tag, attrib, nsmap, **_extra)
result.text = _text
return result
これは複数のp_tagsを持つコードです。現在、上記
for key_products in primary_details:
try:
if 'Products' in key_products.h3.text:
for p_tag in key_products.find_all('p'):
products = create_SubElement(root, 'Products', _text=p_tag.text)
except:
continue
print (ET.tostring(root, pretty_print=True))
コードは、この出力を生成します
'<root>\n
<Products>product name 1 </Products>\n
<Products>product name 2 </Products>\n
<Products>product name 3 </Products>\n
<Products>product name 4 </Products>\n
<Products>product name 5 </Products>\n
</root>\n'
所望の出力は、このようなものになるだろう:
'<root>\n
<Products>
<ProductName>product name 1 </ProductName>\n
<ProductName>product name 2 </ProductName>\n
<ProductName>product name 3 </ProductName>\n
<ProductName>product name 4 </ProductName>\n
<ProductName>product name 5 </ProductName>\n
<Products>
</root>\n'
ProductNamesを持たない製品はどのように処理できますか?私は_text = NULL値を作成しようとしましたが、p_tagが<= 0であっても動作しませんでした。 NULLというタグを作成しようとしています。 –