0

我已经编写了一个登录到我们学校笔记系统的 php 脚本。但我正在尝试将 HTML 页面解析为 xml。但我遇到了一些麻烦。首先,表格的 html 代码有点乱,我不知道现在该做什么。

这是 CURL PHP 页面: http: //koetse.eu/test/curl.php。这是回复的源代码:http: //pastebin.com/RDawmsnY

我正在尝试将凌乱的 HTML 表格更改为 xml 文件,看起来有点像:

<?xml version="1.0" ?> > 
<notes>
    <name>Jurre (4HC)</name>
            <class>kwt</class>
            <class>netl</class>
                    <note>6.6</note>
                    <note>6.3</note>
                    <note>4.9</note>
                    <se>5.8</se>
            <class>entl</class>
                    <note>7.5</note>
                    <note>7.3</note>
                    <note>7.7</note>
                    <note>10.0</note>
                    <note>6.6</note>
                    <note>9.6</note>
                    <note>6.7</note>
                    <note>6.7</note>
                    <se>8.6</se>
            <class>lv</class>
                    <note>7.8</note>
                    <note>4.8</note>
                    <se>6.3</se>
</notes>

等...(我只做了前3行作为例子)

很抱歉使用 pastebin,但我与帖子的最大长度发生了争执。

问候尤尔

4

2 回答 2

0

很惊讶没有人提到整洁。http://www.w3.org/People/Raggett/tidy/。已经正式救了我几次。在将垃圾通过它之后,我已经设法将您的 HTML 加载到 DOM 文档中而没有问题。

然而,在通过 tidy 之后,我必须做一个重要的模块 - 你学校的系统输出一些标签,虽然它们可以在 XML 文档中完美运行,但在 HTML 中无法运行 - wisssearch。使用正则表达式搜索和替换,最后你就得到了一个有效的 DOMDocument!

接下来要做的事情:

  • 摆脱所有那些 &xAA; 标记 - 正则表达式
  • 解析东西!

(整洁 -f errors.txt -m your_file.txt )

于 2013-03-27T21:40:07.590 回答
0

那个 HTML 文档确实看起来很糟糕。我认为您无法使用 DOM 解析器或任何类似 XML 的东西来解析它。

我建议尝试正则表达式方法。

类名显示在一个很好的无编号列表中,因此您可以通过查找<ul>and</ul>标记然后使用正则表达式从 span 标记中提取名称来抓取它们。

同样,您可以找到 的第二次出现<table和第一次出现</table>,然后在其中找到 regexp 以获取行和单元格,最后丢弃 span 的内容并留下数字。

于 2013-03-27T21:30:24.307 回答