我Python
腳本利用BeautifulSoup
試圖解析從本地加載的文件(找到一個元素)XML
時得到None
: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:雖然我明白,蟒蛇是區分大小寫和單Ë字元素=單Ë字元素,案件正在解析Web服務時不予考慮。
print'xmlData'和'respXML'並比較你得到的結果。 – furas
'singleelement!= singleElement' – njzk2
有趣,它適用於REST服務 – amphibient