从ID获取信息

时间:2013-03-31 21:11:50

标签: php domdocument

首先,我是PHP的新手,所以如果这是一个愚蠢的问题,我很抱歉,如果这个标题不正确,那么很抱歉。

现在,我要做的是为我玩的游戏创建叠加层。我的叠加代码完美无缺,现在我正在处理我的HTML文件,该文件从网站获取信息并输出。网站上的代码如下所示:

<span id="example1">Information I want</span>
<span id="example2">More Info I want</span>
...
<span id="example3">And some more</span>

现在我要做的是创建一个PHP脚本,它进入并按名称查找元素,并为我提供这些span标记中的信息。这是我到目前为止所尝试过的,但它并没有起作用(毫不奇怪):

//Some HTML here
<?php
$doc = new DomDocument;
$doc->validateOnParse = true;
$doc->Load('www.website.com');

echo "Example1: " . $doc->getElementById('example1') . "\n";
?>
//More HTML

说实话,我不知道我在做什么。如果有人能够向我展示如何正确地做到这一点,或者指出我正确的方向,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

你的代码似乎沿着正确的方向行进,但你遗漏了一些东西。

首先,您的load电话正在寻找名为“www.website.com”的文件。如果是远程文件,则必须包含http://前缀。

然后,您试图回显节点本身,而您想要它的值(即其内容) 请改为$doc->getElementById("example1")->nodeValue

应该这样做。您可能希望添加libxml_use_internal_errors(true);,以便源文件中的任何错误都不会因PHP错误而破坏您的页面。另外,我建议使用loadHTMLFile代替load,因为这样会对格式错误的文档更加宽容。

答案 1 :(得分:1)

打开和关闭标记之间的文本是文本节点。

只需撰写$doc->getElementById('example1')->nodeValue

即可

答案 2 :(得分:1)

你可以使用getElementById:

$ a = $ doc-&gt; getElementById(“example1”); 的var_dump($ A);所以你会看到你想要回声或放置的东西,或者什么。

你也可以将所有的名称作为示例[]结束,然后结束示例数组,这样你就可以从带有一行代码的示例数组中获取id