如何在python中解析本地磁盘文件中的xml?

时间:2018-04-03 05:26:05

标签: python python-3.x xml-parsing python-requests

我有这样的代码:

import requests

user_agent_url = 'http://www.user-agents.org/allagents.xml'
xml_data = requests.get(user_agent_url).content

将在线xml文件解析为xml_data。如何从本地磁盘文件解析它?我尝试用路径替换本地磁盘,但出现错误:

raise InvalidSchema("No connection adapters were found for '%s'" % url)

InvalidSchema: No connection adapters were found

必须做什么?

2 个答案:

答案 0 :(得分:1)

请注意,您引用的代码不会解析文件 - 它只是将XML数据放入xml_data。本地文件的等效文件根本不需要使用requests:只需编写

with open("/path/to/XML/file") as f:
    xml_data = f.read()

如果您决定使用requests,请参阅this answer了解如何编写文件URL适配器。

答案 1 :(得分:1)

您可以使用open方法读取文件内容,然后使用elementtree模块XML函数来解析它。

它返回一个可以循环的etree对象。

实施例

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {    
var selectedRow = String()
selectedRow = capicityArray[row]
let pickerLabel = UILabel()

if pickerView.selectedRow(inComponent: component) == row {
            pickerLabel.attributedText = NSAttributedString(string: selectedRow, attributes: [NSAttributedStringKey.font:GlobalFont.Font_GillSansStd(fontsize: 26), NSAttributedStringKey.foregroundColor: GlobalColor.RED_THEME])

        } else {
            pickerLabel.attributedText = NSAttributedString(string: selectedRow, attributes: [NSAttributedStringKey.font:GlobalFont.Font_GillSansStd(fontsize: 22), NSAttributedStringKey.foregroundColor: GlobalColor.Color153])
        }
        pickerLabel.isOpaque = true
        pickerLabel.textAlignment = .center
        return pickerLabel
    }