解析し、ローカルにロードされたファイルからXML
を(から要素を見つける。)しようとしたときBeautifulSoup
がNone
を取得し利用マイPython
スクリプト:BeautifulSoupは、ローカルファイルからロードされたXMLを解析しません
xmlData = None
with open('conf//test2.xml', 'r') as xmlFile:
xmlData = xmlFile.read()
# this creates a soup object out of xmlData,
# which is properly loaded from file above
xmlSoup = BeautifulSoup(xmlData, "html.parser")
# this resolves to None
subElemX = xmlSoup.root.singleelement.find('subElementX', recursive=False)
ファイル:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<singleElement>
<subElementX>XYZ</subElementX>
</singleElement>
<repeatingElement id="1"/>
<repeatingElement id="2"/>
</root>
同じXMLを返すREST GETサービスもありますが、requests.get
を使用してそれを読むと、細かく解析されます。
resp = requests.get(serviceURL, headers=headers)
respXML = resp.content.decode("utf-8")
restSoup = BeautifulSoup(respXML, "html.parser")
なぜローカルファイルから読み取られたデータではなく、REST応答で動作するのですか?
UPDATE:私はPythonは大文字と小文字を区別し、単一電子 lementであることを理解している間=単一E lement Webサービスを解析するとき、ケースを無視しています!。
'xmlData'と' respXML'を出力して、あなたが得るものを比較してください。 – furas
'singleelement!= singleElement' – njzk2
面白いですが、これはRESTサービスで動作します – amphibient