我已经写了一个PHP脚本登录到我们的学校笔记系统。但我正在尝试将HTML页面解析为xml。但是我遇到了一些麻烦。首先,表格的html代码有点乱,我不知道现在要做什么。
这是CURL PHP页面:http://koetse.eu/test/curl.php。 这是回复的源代码:http://pastebin.com/RDawmsnY
我正在尝试将该Messy HTML tabel更改为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>
等...(我只将前三行作为例子)
很抱歉使用了pastebin,但是我在帖子的最大长度上打了一场比赛。
关心Jurre
答案 0 :(得分:0)
该HTML文档确实看起来很糟糕。我认为你不能用DOM解析器或类似XML的任何XML来解析它。
我建议尝试正则表达式方法。
类名称显示在一个很好的未编号列表中,因此您可以通过查找<ul>
和</ul>
标记然后使用正则表达式从span标记中提取名称来删除它们。
同样,您可以找到第二次出现的<table
和第一次出现</table>
,然后在其中使用regexp来获取行然后是单元格,最后丢弃跨度内容并留下号。
答案 1 :(得分:0)
非常惊讶没有人提到TIDY。 http://www.w3.org/People/Raggett/tidy/。已经正式拯救了我的屁股几次。我已经设法在将垃圾传递给DOM文档后将其加载到DOM文档中。
然而,在通过整洁之后,我必须做一个重要的模式 - 你的学校的系统会输出一些标签,虽然它们可以在XML文档中完美地工作,但在HTML中却不起作用 - wisssearch。使用正则表达式搜索和替换,最后你有一个有效的DOMDocument!接下来要做的事情:
(tidy -f errors.txt -m your_file.txt)