Skarre Medlem sedan apr. 2001 2 427 inlägg Frågan 16 mars 2004 14:49 #1 Jag försöker få igång DOMXML på min Windows XP-burk och det fungerar inte alls. Koden jag försöker köra är exempelkod från devarticles:
<?
$theXML = "<?xml version='1.0'?>";
$theXML .= " <website><url>";
$theXML .= " http://www.devarticles.com";
$theXML .= " </url></website>";
$xmlDoc = xmldoc($theXML);
$root = $xmlDoc->root();
$node = array_shift($root->children());
echo $node->content;
?>
PHP Warning: Unknown(): Unable to load dynamic library 'C:\PHP\extensions\php_domxml.dll' - Det går inte att hitta den angivna modulen. in Unknown on line 0
Det roliga är att filen faktiskt finns exakt där felmeddelandet hävdar att den inte finns.
Så här ser det de relevanta raderna ut i php.ini:
extension_dir = "C:\PHP\extensions"
extension=php_domxml.dll
Jag läste någonstans att man måste kopiera "iconv.dll" från php-zippen till c:\windows\windows32 vilket jag också gjort.
S SPiN Medlem sedan mars 2000 7 896 inlägg Har du fler än ett ( 1 ) dynamiskt bibliotek aktiverat i din php.ini? Jag vet att jag hade problem med det förut, jag kunde endast använda en extension åt gången.
Skarre Medlem sedan apr. 2001 2 427 inlägg Jag har i och för sig även GD, men jag fick samma meddelande när jag deaktiverade GD.
S SDCd Medlem sedan jan. 2001 795 inlägg Det är inte så att du måste ha en backslash som avslut i din extension_dir?
Matte Medlem sedan aug. 2000 2 975 inlägg
Det roliga är att filen faktiskt finns exakt där felmeddelandet hävdar att den inte finns.
Kommer din dll-fil från samma PHP-version som php.exe ?
Om dll-filen är nyare eller äldre kan du få den effekten.
Skarre Medlem sedan apr. 2001 2 427 inlägg Tack, jag ska kolla upp det.
Skarre Medlem sedan apr. 2001 2 427 inlägg Jag lyckas köra koden på webbhotellet, men det är fortfarande lite att reda ut. Med följande kod läser jag, och skriver ut data från ett xml-dokument (http://www.basket.se/feed/news.asp?n=10 )
<?
if ($xml_document = domxml_open_file('http://www.basket.se/feed/news.asp?n=10')) {
$root = $xml_document->document_element();
$a_articles = $root->get_elements_by_tagname("Article");
for ($i = 0; $i < count($a_articles); $i++) {
$children = $a_articles[$i]->child_nodes();
foreach($children as $child) {
echo '<p>';
print 'Name: '.$child->node_name().'<br/>';
print 'Type: '.$child->node_type().'<br/>';
print 'Content: '.$child->get_content().'<br/>';
echo '</p>';
}
echo '<hr>';
}
}
?>
Varje iteration av taggen "Article" ser ut enligt följande:
Name: #text
Type: 3
Content:
Name: ContentName
Type: 1
Content: Seger även mot Estland - Tre raka för kadetterna!
Name: #text
Type: 3
Content:
Name: ContentPublishedTime
Type: 1
Content: 2004-03-16 16:57:34
Name: #text
Type: 3
Content:
Name: NewsLink
Type: 1
Content: http://www.basket.se/t3.asp?p=4658&x=1&a=107881
Name: #text
Type: 3
Content:
Och jag undrar:
Vad är dessa extra noder som ligger mellan de "riktiga" noderna för någonting? Alltså de som heter #text och inte innehåller någonting.
Hur gör jag för att å, ä och ö ska skrivas ut korrekt?
Z Zeke82 Medlem sedan mars 2004 4 inlägg Tjena. Jag har lagt DLL filerna "php_iconv" och "iconv" samt "dom_xml" i "Windows/System" mappen och allt funkar fint.
Prova du med :)
MVH / Zeke82