Avatar billede ClubAcedDK Nybegynder
27. februar 2011 - 17:28 Der er 5 kommentarer og
1 løsning

Grab textContet fra en anden side via getElementById

Hej eksperter! :)

Hvordan bærer man sig lige ad med at "grabbe" tekstindholdet fra et element med et bestemt id fra en anden side?.. Siden hvorfra der skal grabbes, befinder si i øvrigt på mit eget domæne.

Jeg ved hvordan man kan grabbe tekstindhold fra en anden side via getElementsByTagName...

<?php
$doc = new DomDocument();
$doc->loadHTMLFile('en_eller_anden_url.php');
$element = $doc->getElementsByTagName('div');
echo $element->item(7)->textContent;
?>

... men hvis jeg skal gøre brug af getElementById, har jeg læst mig frem til, at man skal gøre brug af følgende...

<?php
$doc = new DomDocument;
$doc->validateOnParse = true;
$doc->Load('en_eller_anden_url.php');
echo $doc->getElementById('stats')->textContent;
?>

Sidstnævnte script her, er baséret på hvad jeg kunne forstå på http://php.net/manual/en/domdocument.getelementbyid.php .. men det lader ikke til at virke :(

Er der nogen der ved hvordan jeg skal gøre for at opnå den ønskede effekt?


Venligst
Ace
Avatar billede jakobdo Ekspert
27. februar 2011 - 17:55 #1
932764.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Test</title>
</head>
<body>
<div id="stats">Test</div>
</body>
</html>

932764.php
<?php
$doc = new DomDocument;
$doc->loadHTMLFile("932764.html");
echo '<pre>';
print_r($doc->getElementById('stats')->nodeValue);
echo '</pre>';
?>
Avatar billede ClubAcedDK Nybegynder
27. februar 2011 - 18:14 #2
Tak for foreslaget jakobdo, men outputtet af dit eksempel er bare...

<html>
<head>
</head>
<body>
<pre></pre>
</body>
</html>

... så det ser umiddelbart ikke ud til at der bliver grabbet noget :(
Avatar billede jakobdo Ekspert
27. februar 2011 - 18:18 #3
Se her:

http://codebreaker.dk/exp/932764.html

og

http://codebreaker.dk/exp/932764.php

Den ene side, tager TEST fra div med id="stats"
Avatar billede ClubAcedDK Nybegynder
01. marts 2011 - 18:47 #4
Jeg aner simpelthen ikke hvad det er jeg gør galt :S

Sådan her ser mit script ud:

stats.php
<html>
<head>
</head>
<body>
<div id="chrisScore">200</div>
</body>
</html>

topseller.php
<html>
<head>
<?php
$chrisWeekDom = new DomDocument;
$chrisWeekDom->loadHTMLFile('period/2011/02.02.2011-01.03.2011/23.02.2011-01.03.2011/stats.php');
$chrisWeek = $chrisWeekDom->getElementById('chrisScore')->nodeValue;
?>
</head>
<body>
<?php echo $chrisWeek; ?>
</body>
</html>

Som sådan ville jeg mene, at dette skulle lede til, at der imellem <body></body> i topseller.php ville komme til at stå 200?.. men der kommer ingenting :(
Avatar billede jakobdo Ekspert
01. marts 2011 - 18:51 #5
Prøv at se min html kode versus din: http://codebreaker.dk/exp/932764.html
Du mangler doctype!
Avatar billede ClubAcedDK Nybegynder
05. juli 2014 - 20:28 #6
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester