私の要求する要素のパスを私のBeautifulSoup
パーサが無視して、そのポイントまでのパスにかかわらずパスの最後の要素の名前を持つ最初のタグを返します。BeautifulSoupナビゲーションは指定されたパスを無視します
XML:
<root>
<firstcategory>
<subcategory>
<id>123</id>
<name>SubcategX</name>
</subcategory>
<id>789</id>
<name>Category1</name>
</firstCategory>
</root>
Python
コード:
from bs4 import BeautifulSoup
testXML = "<root><firstcategory><subcategory><id>123</id><name>SubcategX</name></subcategory><id>789</id><name>Category1</name></firstCategory></root>"
soup = BeautifulSoup(testXML)
#below should be 789
categID = soup.root.firstcategory.id
#this prints 123, which corresponds to the path root.firstcategory.subcategory.id, not root.firstcategory.id
print("categID = %s" % categID)
なぜBeautifulSoupは単純にかかわらず、指定されたパスの階層内の第1のIDタグを検索しますか?
これは、forループ内にインデックスを保持する悪い例です。 'for i、categID in enumerate(categIDs):'のために列挙する必要があります – Soviut