Python 3.x 使用python XML或simplified_scrapy将XML转换为csv
我试图将1个XML文件转换为CSV/xls。我试过下面的代码,但似乎不起作用。 我必须为角色为Base的“NodeName”获取中心频率。 下面是示例XMLPython 3.x 使用python XML或simplified_scrapy将XML转换为csv,python-3.x,xml,Python 3.x,Xml,我试图将1个XML文件转换为CSV/xls。我试过下面的代码,但似乎不起作用。 我必须为角色为Base的“NodeName”获取中心频率。 下面是示例XML 我从一个名为“simplified_scrapy”的用户那里找到了一个非常简单的库,用于XML到CVS 下面是您可以尝试的解决方案 from simplified_scrapy import SimplifiedDoc, utils, req import inspect import time import os import pand
我从一个名为“simplified_scrapy”的用户那里找到了一个非常简单的库,用于XML到CVS 下面是您可以尝试的解决方案
from simplified_scrapy import SimplifiedDoc, utils, req
import inspect
import time
import os
import pandas as pd
def delEmptyRows(name, encoding="utf-8"):
lines = utils.getFileLines(name, encoding=encoding)
lines = [line for line in lines if line.strip()!='']
utils.saveFile(name, "".join(lines), encoding=encoding)
root = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
xml = utils.getFileContent(root +'/xml.xml')
#xml = open('mumbai2.xml','r').read
doc = SimplifiedDoc(xml)
lstNodeResult = doc.selects('IBridge2ConfigResult')
data = [['NodeName','CenterFrequency']]
for result in lstNodeResult:
lstrole = result.selects('IBridge2Config>Role')
frequency = result.CenterFrequency.text
NodeName = result.NodeName.text
row = [NodeName,frequency]
if NodeName !=' ':
data.append(row)
# print (data)
utils.save2csv('Frequency_List.csv',data)
delEmptyRows('Frequency_List.csv')
谢谢@Sonu,在NTAFUXXXXNB0001Enti21001在NMIPRXXTW6011ENBI21001 5745在NMLDRKMJRTW0001EnBI21001 5865中,它起到了作用
from simplified_scrapy import SimplifiedDoc, utils, req
import inspect
import time
import os
import pandas as pd
def delEmptyRows(name, encoding="utf-8"):
lines = utils.getFileLines(name, encoding=encoding)
lines = [line for line in lines if line.strip()!='']
utils.saveFile(name, "".join(lines), encoding=encoding)
root = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
xml = utils.getFileContent(root +'/xml.xml')
#xml = open('mumbai2.xml','r').read
doc = SimplifiedDoc(xml)
lstNodeResult = doc.selects('IBridge2ConfigResult')
data = [['NodeName','CenterFrequency']]
for result in lstNodeResult:
lstrole = result.selects('IBridge2Config>Role')
frequency = result.CenterFrequency.text
NodeName = result.NodeName.text
row = [NodeName,frequency]
if NodeName !=' ':
data.append(row)
# print (data)
utils.save2csv('Frequency_List.csv',data)
delEmptyRows('Frequency_List.csv')