我有这样的代码:
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
必须做什么?
答案 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
}