php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.04.2006, 12:35  
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 14
crumble
Standard herausbekommen, ob dokument xml ist

hallo,

ich suche eine (möglich DOM-) Funktion, die mir sagt, ob eine Datei ein XML-Datei ist.
Meine bisherige Implementation
Code:
$dom = new DomDocument();
$dom->load($irgendeinedatei);
$documentContent = $dom->saveXML();
if (!$documentContent) {
  echo "Kein xml dokument";
}
wirft leider bei einer textdatei (inhalt: "bla" ) den erwarteten Fehler nicht aus.

echo "$documentContent" zeit mir keinen 'content' an! mit
Code:
if (!$documentContent || $documentContent="")
will es auch nicht klappen

Hat da jemand einen Tipp?

crumble
__________________
Auf den Alkohol - die Ursache und die Lösung aller Probleme!
crumble ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.04.2006, 13:05  
Erfahrener Benutzer
 
Registriert seit: 07.07.2005
Beiträge: 150
sysop
sysop eine Nachricht über ICQ schicken
Standard

<xml> sollte enthalten sein, wenn das ganze sauber gemacht ist.

auf die schnelle würde ich ausserdem nach inhalten suchen, die typisch xml sind wie <item>, <link> oder <title>.
hmmm <channel> ist glaube ich rdf nicht xml, könnte aber auch ein kriterium sein.
__________________
gruss sys
sysop ist offline  
Alt 02.04.2006, 13:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von sysop
auf die schnelle würde ich ausserdem nach inhalten suchen, die typisch xml sind wie <item>, <link> oder <title>.
hmmm <channel> ist glaube ich rdf nicht xml, könnte aber auch ein kriterium sein.
Die Tags sind doch überhaupt nicht zwingend für ein XML.

"<?xml " hingegen schon. Jedoch nicht zwingend am Anfang, soweit ich weiß.

- http://de.wikipedia.org/wiki/XML#Auf..._XML-Dokuments
Zergling-new ist offline  
Alt 02.04.2006, 13:27  
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 14
crumble
Standard

also scheint es da keine vorgefertigte Funktion zu geben?!
Die einfachste xml-datei ist soweit ich weiss <?xml>
also könnte man nach <?xml einfach suchen. Jedoch:
Code:
Willkommen bei bla. bla bla. um ein xml-dokument zu erzeugen, beginnt man mit <?xml
blablabla
ich kenn mich zwar mit den Formalen nicht aus, aber das dürfte kein xml-dokument sein .
__________________
Auf den Alkohol - die Ursache und die Lösung aller Probleme!
crumble ist offline  
Alt 02.04.2006, 13:29  
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 14
crumble
Standard

bzw. verstehe ich nicht ganz, warum die 'load'-Funktion nicht gleich mit macht.
ein anschliessendes
Code:
if (!$dom) echo "kein xml";
funktioniert auch nicht.
__________________
Auf den Alkohol - die Ursache und die Lösung aller Probleme!
crumble ist offline  
Alt 02.04.2006, 13:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was hat denn dann oben beim Einlesen einer Datei per XML-Parser nicht geklappt?

Wenn du den Aufbau des XMLs nicht kennst, warum dann so genau prüfen? Wenn die Datei nicht mit .xml aufhört einfach nicht als XML akzeptieren und umgekehrt.
Das reicht, wer dein Skript reinlegen will schaffts auch mit nem blöden Dump-File.

Bitte benutz den Edit-Button
Zergling-new ist offline  
Alt 02.04.2006, 13:38  
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 14
crumble
Standard

>Was hat denn dann oben beim Einlesen einer Datei per XML-Parser nicht geklappt?

wo oben?
im 1. thread? da wird einfach nicht der fehler gemeldet bzw. in die schleife gegangen. das beispiel mit den vielen blas habe ich mir nur überlegt, nicht probiert, werd ich mal machen.
__________________
Auf den Alkohol - die Ursache und die Lösung aller Probleme!
crumble ist offline  
Alt 02.04.2006, 13:50  
Erfahrener Benutzer
 
Registriert seit: 07.07.2005
Beiträge: 150
sysop
sysop eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Zergling
Die Tags sind doch überhaupt nicht zwingend für ein XML.

"<?xml " hingegen schon. Jedoch nicht zwingend am Anfang, soweit ich weiß.

- http://de.wikipedia.org/wiki/XML#Auf..._XML-Dokuments

das sagt ja auch niemand, im gegenteil. nur eine funktion ob etwas in xml ist oder nicht gibt es meines wissens nicht. daher würde ich auf die schnelle (das ist eben mal eben so aus dem hut gezaubert) nach typischen einträgen suchen, die in einer xml normalerweise zu finden sind.

ps.
die datei die du lesen willst ist aber vom aufbau bekannt nehme ich an, im zweifelsfall kannst du nach einträgen und aufbauten suchen, die für deine datei(en) typisch sind.

hilfreich wäre zu wissen, was dann ausgelesen und dargestellt werden soll.
ich mache etwas ähnliches mit rdf dateien von heise, boinc und (und da ist mein problem) von anderen foren betreibern mit denen ich zusammen arbeite. ich will links extrahieren und suche nach den typischen einträgen. nicht alle rdf-dateien sind immer rdf konform geschreiben, vor allem nicht, wenn sie von dem ersteller selber zusammen geprogged wurden.
__________________
gruss sys
sysop ist offline  
Alt 02.04.2006, 14:41  
Gast
 
Beiträge: n/a
Standard Re: herausbekommen, ob dokument xml ist

Zitat:
Zitat von crumble
ich suche eine (möglich DOM-) Funktion, die mir sagt, ob eine Datei ein XML-Datei ist.
Klappert doch (PHP 5.0.4):
PHP-Code:
<?php
$dom 
= new DOMDocument;
$dom->Load('book.xml');
if (
$dom->validate()) {
   echo 
"This document is valid!\n";
}
?>
Wirft sogar Warnungen:
Zitat:
Warning: DOMDocument::load() [function.load]: Start tag expected, '<' not found in /srv/www/htdocs/book.xml, line: 1 in /srv/www/htdocs/index.php on line 3

Warning: no DTD found! in /srv/www/index.php on line 4
 
Alt 03.04.2006, 00:20  
Neuer Benutzer
 
Registriert seit: 23.11.2005
Beiträge: 14
crumble
Standard

$dom->validate() hat nicht funktioniert.
was aber ging:
Code:
$dom = new DomDocument();
if ($dom->load($documentName)) {
  $documentContent = $dom->saveXML();
}
else echo "error";
also man kann direkt bei DomDocument->load() die Überprüfung vornehmen (lassen) - zumindest werden bei mir normale textdateien als nicht valide erkannt und xml als valide
__________________
Auf den Alkohol - die Ursache und die Lösung aller Probleme!
crumble ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML Zeichen in einem bestehendem XML Dokument umwandeln PHP Tipps 2006 33 24.03.2006 17:33
"Das Dokument enthält keine Daten!" b++ Server, Hosting und Workstations 9 31.01.2006 19:10
Dokument enhält keine Dateien $$$ ThiKool $$$ PHP Tipps 2007 1 25.12.2005 14:27
[Erledigt] Zeichen ersetzen in einem Dokument PHP Tipps 2007 16 25.11.2005 14:16
link auf php dokument [gelöst] lukatsch PHP Tipps 2007 17 05.11.2005 13:03
Word dokument in MySQL speichern PHP Tipps 2005-2 1 23.10.2005 20:42
php dokument lässt sich nicht öffnen PHP Tipps 2005-2 5 08.08.2005 13:56
Variable in dokument schreiben PHP Tipps 2005-2 2 23.06.2005 15:51
mittels PHP an bestimmte Stelle in Dokument springen Lia PHP Tipps 2005 12 26.05.2005 11:18
PDF Dokument voll geschützt vor Kopierer Mutatos PHP Tipps 2005 4 09.05.2005 10:32
url herausbekommen PHP Tipps 2005 4 27.04.2005 15:51
Variable in neuem Dokument anzeigen PHP Tipps 2005 8 21.02.2005 21:18
XML Dokument speichern/überschreiben HTML, Usability und Barrierefreiheit 2 24.01.2005 09:52
resultausgabe mit while schleife in pdf dokument PHP Tipps 2004 2 23.09.2004 14:56
links aus dokument filtern wurtzel PHP-Fortgeschrittene 3 10.09.2004 17:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
das dokument ist nicht valides, typisches xml dokument, herausbekommen ob php läuft

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.