我正在尝试用Python构建Discord机器人,该机器人将返回有关公交车到达的信息。我正在使用提供XML提要的nextbus api https://www.nextbus.com/xmlFeedDocs/NextBusXMLFeed.pdf。
由于公交车的到站信息将不断更新,因此我无法下载文件,但是每次用户提出请求时,我都需要查看最新数据。我查看了xml.etree.ElementTree,但这在我的情况下不起作用(至少我无法使其正常工作)。相反,我改用xml.dom.minidom。这远不及ElementTree好。由于无法访问提要中的内容,因此很难使用dom.getElementByTagName('tag name')
。这是因为,如果当前未运行特定总线,则将预测xml从具有预测元素更改为具有'dirTitleBecauseNoPrediction'标签。如果没有总线在运行,这就是xml的样子。
<body copyright="redacted">
<predictions agencyTitle="redacted" routeTitle="redacted" routeTag="redacted" stopTitle="redacted" stopTag="recacted" dirTitleBecauseNoPredictions="To redacted"></predictions>
</body>
公交车运行时看起来像这样
<body copyright="redacted">
<predictions agencyTitle="redacted" routeTitle="redacted" routeTag="redacted" stopTitle="redacted" stopTag="redacted">
<direction title="redacted">
<prediction epochTime="1546570037272" seconds="1228" minutes="20" isDeparture="false" affectedByLayover="true" dirTag="redacted" vehicle="redacted" block="redacted"/>
<prediction epochTime="1546572437272" seconds="3628" minutes="60" isDeparture="false" affectedByLayover="true" dirTag="redacted" vehicle="redacted" block="redacted"/>
</direction>
</predictions>
</body>
我希望能够解析该文件并查看存在的内容,因此可以决定要向用户提供哪些信息。
我对Doms和xml一般是陌生的。任何有关什么指南会有所帮助的信息将不胜感激。同样,将赞赏什么图书馆或如何更有效地使用Minimal。我曾尝试过Google,但收效甚微。我开始认为Python并不是从事此项目的最佳语言。无论如何,请提前感谢您。