[英]Reading XML file leaving possible new lines
我正在使用ElementTree讀取.xml文件並將輸出保存到.csv文件。 我遍歷xml文件中的所有行,並將名稱和文本對保存在列表中。
savedParameters = []
tree = ET.parse(work_dir + input_name)
root = tree.getroot()
for child in root:
savedParameters.append({'parameterName' : child.tag, 'Value' : child.text})
for gchild in child:
savedParameters.append({'parameterName' : gchild.tag, 'Value' : gchild.text})
for ggchild in gchild:
.
.
.
然后,我遍歷savevedParameters並將它們寫入csv文件。 除了在一種情況下之外,所有這些工作都很好,以下面的xml為例。
<VehicleId>123456789</VehicleId>
-<VRMs>
<ForAppointment>X111XXX</ForAppointment>
<Alternate>X111XXX</Alternate>
</VRMs>
<Vin>123456</Vin>
在這種情況下,除了字段外,所有內容都將按預期存儲。 該字段應該為空,但是當我訪問child.text()時,它將存儲帶有新行的空白字符串,即-<VRMs>
和</VRMs>
之間的所有空格。 因此,當我寫到csv時,它將寫出新行。
我嘗試過replace(" ", "")
和replace("\\n","")
但都不能解決我的問題。 有誰知道解決這個問題的方法嗎?
您應該能夠使用str.strip()
換行符(從字符串的開頭和結尾str.strip()
(不提供任何參數)。
范例-
>>> s = "\n \n asd \n \n \n \n\n "
>>> s.strip()
'asd'
>>> s = "\n \n \n \n \n \n\n "
>>> s.strip()
''
如上所示,如果字符串僅包含空格,則str.strip()
將返回空字符串,對於child.text
似乎是這種情況。 因此,您應該可以執行child.text.strip()
然后再嘗試將其存儲在字典中。 范例-
for child in root:
savedParameters.append({'parameterName' : child.tag, 'Value' : child.text.strip()})
for gchild in child:
savedParameters.append({'parameterName' : gchild.tag, 'Value' : gchild.text.strip()})
for ggchild in gchild:
.
.
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.