Nápověda:Validace XML v PHP
Z VirtlabWiki
(Rozdíly mezi verzemi)
Verze z 20:46, 21. 2. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Aktuální verze Vav166 (Diskuse | příspěvky) |
||
Řádka 1: | Řádka 1: | ||
Tenhle typ validace lze použít '''jen''' v PHP5. | Tenhle typ validace lze použít '''jen''' v PHP5. | ||
+ | == Validace proti DTD == | ||
Validovaný soubor může být lokální i vzdálený. | Validovaný soubor může být lokální i vzdálený. | ||
- | |||
DTD soubor, proti kterému se soubor ověřuje, musí být zadán '''uvnitř''' souboru (klauzule <code><!DOCTYPE </code>) - přímo nebo odkazem. | DTD soubor, proti kterému se soubor ověřuje, musí být zadán '''uvnitř''' souboru (klauzule <code><!DOCTYPE </code>) - přímo nebo odkazem. | ||
- | |||
Pokud máte XML data uložena v proměnné, tak místo <code>$dom->load($path)</code> použijte <code>$dom->loadXML($string)</code> | Pokud máte XML data uložena v proměnné, tak místo <code>$dom->load($path)</code> použijte <code>$dom->loadXML($string)</code> | ||
- | ---- | ||
<pre> | <pre> | ||
$path = "http://www.w3.org/TR/xhtml1/"; | $path = "http://www.w3.org/TR/xhtml1/"; | ||
Řádka 18: | Řádka 16: | ||
else | else | ||
print("Document is VALID!\n"); | print("Document is VALID!\n"); | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Validace proti Relax-ng == | ||
+ | Jazyk PHP (ve verzi 5) má přímo zabudovánu podporu pro validaci proti tomuto schématu. Jedná se o několik tříd z rodiny DOM (Document Object Model). | ||
+ | Pro validaci nám stačí napsat pouze pár řádků: | ||
+ | |||
+ | <pre> | ||
+ | $dom = new DOMDocument(); | ||
+ | $dom->load("soubor_k_validaci.xml"); | ||
+ | $vysledek = $d->relaxNGValidate("tady_je_RELAXNG_schema.rng"); | ||
</pre> | </pre> | ||
Aktuální verze
Tenhle typ validace lze použít jen v PHP5.
[editovat]
Validace proti DTD
Validovaný soubor může být lokální i vzdálený.
DTD soubor, proti kterému se soubor ověřuje, musí být zadán uvnitř souboru (klauzule <!DOCTYPE
) - přímo nebo odkazem.
Pokud máte XML data uložena v proměnné, tak místo $dom->load($path)
použijte $dom->loadXML($string)
$path = "http://www.w3.org/TR/xhtml1/"; //$path = "soubor.xml"; $dom = new DOMDocument; $dom->load($path); if(!($dom->validate())) die("Document is INVALID!\n"); else print("Document is VALID!\n");
[editovat]
Validace proti Relax-ng
Jazyk PHP (ve verzi 5) má přímo zabudovánu podporu pro validaci proti tomuto schématu. Jedná se o několik tříd z rodiny DOM (Document Object Model). Pro validaci nám stačí napsat pouze pár řádků:
$dom = new DOMDocument(); $dom->load("soubor_k_validaci.xml"); $vysledek = $d->relaxNGValidate("tady_je_RELAXNG_schema.rng");