Vážení zákazníci, letos budeme mít naposledy otevřeno v pondělí 22. 12. do 16:00. Přejeme Vám pěkné Vánoce, klidný závěr roku a úspěšný rok 2026. Těšíme se na Vás opět od pondělí 5. 1. 2026.

 

 

 

Jak číst XML pomocí PHP

Jak číst XML pomocí PHP
Jak číst XML pomocí PHP (1)

Zde je stručný návod, jak hodnoty z různých našich zařízení číst ve formátu XML a vložit je do stránek psaných v jazyce PHP. To může být základ pro to, abyste mohli své stránky obohatit o údaje ze zařízení, která máte od nás. V tomto článku je příklad jak pomocí XML a PHP zobrazovat údaje z I/O modulu Quido.

Proč umět číst XML pomocí PHP?

Tento stručný návod může být základem k tomu jak:

  • ...vytvořit stránku s Vaší vlastní grafikou s naměřenými hodnotami a dalšími údaji z našich zařízení, které máte.
  • ...vytvořit stránku, která shromažďuje údaje z více zařízení nebo s nimi provádí nějaké operace.
  • ...napsat skript, který bude pomocí PHP číst údaje z XML na jiném serveru.

Co je potřeba?

  • Počítač nebo server s PHP skriptováním
  • Základní znalost skriptování PHP a HTML

Čtení XML pomocí PHP a XMLReader

Následující skript přečte všechny aktuální stavu vstupů a výstupů z I/O modulu Quido, zapojeného v místní síti a s IP adresou 192.168.1.254. Skript se připojí ke Quidu, přečte si aktuální údaje ze souboru ve formátu XML a zobrazí u každého vstupu a výstupu jeho jméno, pořadové číslo a stav.

Skript slouží k porozumění způsobu, jak tyto údaje z Quida získat. Skript ke čtení používá XMLReader.

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Přehled všech aktuálních stavů I/O na Quidu</title>
	</head>
	<body>
<?php

$reader = new XMLReader();

//Kompletní adresa vedoucí ke XML v Quidu
$reader->open("http://192.168.1.254/fresh.xml");

echo "<h1>Přehled všech aktuálních stavů I/O na Quidu</h1>";

while ($reader->read()) {
	
	// Jména, čísla a stavy všech vstupů
		if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "din")
		echo "<p><b>" . $reader->getAttribute('name') . "</b> (IN " . $reader->getAttribute('id') . "): " . $reader->getAttribute('val') . "</p>";

	// Jména, čísla a stavy všech výstupů
		if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "dout")
		echo "<p><b>" . $reader->getAttribute('name') . "</b> (OUT " . $reader->getAttribute('id') . "): " . $reader->getAttribute('val') . "</p>";

};

?>
	</body>
</html>

Výstupem výše uvedeného PHP skriptu je tento výpis:

XmlReader - výstup skriptu

Čtení XML pomocí PHP a XPath

Tento skript ke čtení používá přístup pomocí XPath. Skript obsahuje id konkrétních vstupů na I/O modulu Quido, které uživatel chce číst. Tento způsob se hodí v případě, že na dané stránce chcete získat jen některé konkrétní informace z Quida. Například jen jména a stavu dvou vstupů z celého Quida.

Skript slouží k porozumění způsobu, jak tyto údaje z Quida získat. Skript ke čtení používá DOMXpath.

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Stav vybraných I/O na Quidu</title>
	</head>
	<body>
	
<?php

	$doc = new DomDocument();
	
	//Kompletní adresa vedoucí ke XML v Quidu
	$doc->load("http://192.168.1.254/fresh.xml");
	$doc->preserveWhiteSpace = false;
	
	$xpath = new DOMXpath($doc);
    $xpath->registerNamespace('x','http://www.papouch.com/xml/quido/act');
	
	echo "<h1>Stav vybraných I/O na Quidu</h1>";
	
	//V následujících řádcích se získává stav vstupů ("din") číslo ("id") 2 a 4
	echo "<p>Vstup <b>" . $xpath->evaluate("string(//x:din[@id='2']/@name)") . "</b> má hodnotu " . $xpath->evaluate("string(//x:din[@id='2']/@val)") . "</p>";
	echo "<p>Vstup <b>" . $xpath->evaluate("string(//x:din[@id='4']/@name)") . "</b> má hodnotu " . $xpath->evaluate("string(//x:din[@id='4']/@val)") . "</p>";

?>
	
	</body>
</html>

Výstupem PHP skriptu, který čte XML je tento stručný výpis.

XPath - výstup skriptu

Příklad XML souboru

Následující XML soubor je příkladem souboru fresh.xml z I/O modulu Quido ETH 4/4. Tento soubor slouží jako příklad pro čtení pomocí skriptů uvedených výše.

<?xml version="1.0" encoding="ISO-8859-1"?>
<root xmlns="http://www.papouch.com/xml/quido/act">
	<din id="1" name="Hall light" sts="0" val="0" pic="12" cmo="0" cnt="0" />
	<din id="2" name="South Gate" sts="0" val="1" pic="17" cmo="0" cnt="0" />
	<din id="3" name="Boxes counter" sts="0" val="0" pic="1" cmo="1" cnt="274" />
	<din id="4" name="No name" sts="0" val="1" pic="3" cmo="3" cnt="28" />
	<dout id="1" name="Klapka" sts="0" val="0" pic="7" mde="0" pars="" />
	<dout id="2" name="Osvetleni haly" sts="0" val="1" pic="12" mde="0" pars="1;0;300;351;5" />
	<dout id="3" name="Brana" sts="0" val="0" pic="10" mde="1" pars="0;0;0;0;5" />
	<dout id="4" name="Chlazeni" sts="0" val="0" pic="16" mde="4" pars="2;0;405;452;6" />
	<temp id="1" sts="0" val="   12,6" th="    30" tl="   -10" tenb="1" />
	<status location="Storage C" unit="C" />
</root>

Z jakých zařízení je možné XML pomocí PHP číst?

Výše uvedené příklady lze po mírné úpravě použít také pro čtení teploty z TME nebo TME multi, teploty, vlhkosti a rosného bodu z TH2E, analogových hodnot z AD4ETH nebo rychlosti a směru větru z TX20ETH. Použitý způsob je univerzální, takže se dá snadno upravit pro jakékoli naše zařízení, které poskytuje hodnoty ve formátu XML. V dokumentacích u našich zařízeních naleznete popisy parametrů a hodnot, které je možné z našich zařízení v XML získat. Na Vašem webu pak můžete plně využít potenciál údajů, které naše zařízení ve formátu XML poskytují.

Pokud máte nějaký námět na vylepšení výše uvedených skriptů nebo k nim máte jakýkoli dotaz, můžete se na nás obrátit například prostřednictvím níže uvedeného formuláře.

Obrázky


Vytvořeno29.09.2014
Na vašem soukromí nám záleží
Tento internetový obchod ukládá soubory cookies, které pomáhají k jeho správnému fungování. Využíváním našich služeb s jejich používáním souhlasíte.
Povolit všePodrobné nastavení
Papouch store s.r.o Reviews with ekomi.co.uk