İşte admin_xml.php XML veri göndermek için kullanıyorum basit bir şeklidir
<form name="review" action="admin_xml.php" method="post">
<textarea name="xml" cols="40" rows="10"></textarea>
<input class="submit" type="submit" value="Submit Request">
</form>
İşte MySQL Veritabanı gelen verileri almak için girmek XML
<?xml version="1.0" encoding="UTF-8"?>
<GetOrdersIds>
<Credentials>
<Username>my_username</Username>
<Password>my_password</Password>
</Credentials>
<Criterions>
<OrderNumber></OrderNumber>
<StartDate>2009-01-01</StartDate>
<EndDate>2009-07-01</EndDate>
</Criterions>
</GetOrdersIds>
İşte xml etiketlerini ayıklar php kodu:
<?php
$text_all = "<?xml version=\"1.0\"?>\r\n<GetOrdersIds version=\"1.0\">\r\n<Credentials>\r\n<Username>my_username</Username>\r\n<Password>my_password</Password>\r\n</Credentials>\r\n<Criterions>\r\n<OrderNumber></OrderNumber>\r\n<StartDate>2009-01-01</StartDate>\r\n<EndDate>2009-07-01</EndDate>\r\n</Criterions>\r\n</GetOrdersIds>";
$field = "Criterions";
$result = substr($text_all, strpos($text_all, "<".$field.">")+strlen("<".$field.">"), strpos($text_all, "</".$field.">")-strlen("<".$field.">")-strpos($text_all, "<".$field.">"));
?>
Yukarıdaki php kod sonucu:
<OrderNumber></OrderNumber>
<StartDate>2009-01-01</StartDate>
<EndDate>2009-07-01</EndDate>
Komut dosyası çalıştırıldığında, php kod benim mysql veri geçer ve Başlangıç Tarihi ve yukarıda verilen Bitiş Tarihi arasındaki tüm siparişleri ayıklar.
Aynı işlevi gerçekleştirir, böylece aşağıdaki php kodu geliştirmek daha iyi bir yolu var mı:
$result = substr($text_all, strpos($text_all, "<".$field.">")+strlen("<".$field.">"), strpos($text_all, "</".$field.">")-strlen("<".$field.">")-strpos($text_all, "<".$field.">"));
Bu xml veri arar ve tüm etiketleri alır kodudur.
GÜNCELLEME:
Herkes SimpleXMLElement $ sonuç kodu sayabilir misiniz?