在python中解析XML文件并将其显示在HTML页面中

时间:2015-02-04 19:40:41

标签: python html xml parsing raspberry-pi

我正在使用Raspberry-Pi进行数字标牌项目。 R-Pi将连接到HDMI显示器和互联网。在R-Pi中将有一个XML文件和一个自行设计的HTML网页.XML文件将经常从远程终端更新。

我的想法是使用Python(lxml)解析XML文件,并将此解析后的数据传递到我的本地HTML网页,以便它可以在R-Pi的网络浏览器中显示这些数据。网页将经常出现重新加载以反映更改的数据。

我能够使用Python(lxml)解析XML文件。但是我应该使用什么工具在本地HTML网页中显示这个解析的内容(主要是字符串)?

这个问题可能听起来微不足道,但我对这个领域很新,在任何地方都找不到任何明确的答案。还有一些方法使用PHP解析XML然后将其传递给HTML页面,但根据我的其他需要,我必然会使用Python。

2 个答案:

答案 0 :(得分:1)

我认为有三个步骤可以让它发挥作用。

  1. 仅从给定的XML文件中提取所需的数据。
  2. 使用简单的模板引擎将提取的数据插入HTML文件。
  3. 使用网络服务器为上面创建的文件提供服务。
  4. 步骤1)你已经在使用lxml,这是一个很好的库,所以我认为你不需要帮助。

    步骤2)现在有很多python模板引擎,但出于简单的目的,你只需要一个预先用一些特殊标记创建的HTML文件,例如{{0}},{{1}}或其他这对你有用。这将是你的模板。从第1步中获取数据,然后在模板中查找并替换,并将输出保存到新的HTML文件中。

    步骤3)要使用其他设备或PC上的浏览器访问该文件,您需要使用简单的HTTP Web服务器对其进行维护。 Python提供http.server库,或者您可以使用第三方Web服务器,只需确保它可以访问在步骤2中创建的文件。

答案 1 :(得分:1)

我没有将解析后的数据(从XML文件解析)传递给HTML页面中的特定组件,而是编写了python代码,以便定期重写整个HTML网页的代码。

假设我们有一个XML文件,一个python脚本,一个HTML网页。

  • XML文件:包含定期更新并要解析的某些值。
  • Python脚本:解析XML文件(当XML文件发生变化时)并使用新解析的值更新HTML页面
  • HTML网页:在R-Pi屏幕上显示并定期重新加载(以反映浏览器的任何变化)

python代码将声明一个字符串(例如, str ),其中包含HTML页面的代码,如下面的代码所示。

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>
<p>My first paragraph.</p>

</body>
</html>

然后假设我们想用我们从XML解析的值来更新我的第一段,我们可以使用Python字符串替换函数,

str.replace("My first paragraph",root[0][1].text)

替换完成后,将整个字符串( str )写入HTML文件。现在,HTML文件将有新代码,一旦重新加载,更新后的网页将显示在浏览器中(R-Pi)