Dostu Metin dize HTML için PHP XML Nesne?

2 Cevap php

Ben PHP5 kullanıyorum ve dahili soap işlevselliği. Ben SOAP hatası hataları yakalamak ve bir devreye girdiğinde kendimi e-posta ediyorum.

Ne gerçekten yapmanız gereken __ getLastRequest () ve __ getLastResponse (), ancak bu gibi XML nesneler, benim HTML e-posta gövdesinde içine yankılanan onları eklemeyi deneyin, bilinen nedenlerle onlar görünmüyor include dolu.

Bir HTML dostu dizeye bu nesneleri dönüştürmek için kullanabileceğiniz bir işlev veya sınıf var mı?

Ben ancak herhangi bir sevinç olmadan bu google'dan. Mümkünse ihtiyaçları Ben gerekecek gerekiyorsa ben PHPs kendi işlevselliği için harici bir sınıfını kullanarak önlemek istiyorum ama istiyorum.

GÜNCELLEME:

Bana bir girintili tarayıcı dostu sürümünü verir, böylece nasıl aşağıdaki XML biçimlendirebilirsiniz?

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="schemas.xmlsoap.org/soap/envelope/"; xmlns:ns1="xxx.com/"><SOAP-ENV:Body><ns1:Ad… 0NE</ns1:Postcode><ns1:BuildingName></ns1:BuildingName><ns1:BuildingNo></ns1:BuildingNo><ns1:SubBuilding></ns1:SubBuilding><ns1:Organisation></ns1:Organisation><ns1:Street></ns1:Street><ns1:SubStreet></ns1:SubStreet><ns1:Town></ns1:Town><ns1:District></ns1:District></ns1:address><ns1:AccountName>admin@xxx.co.uk</ns1:AccountName><ns1:Password>password</ns1:Password></ns1:AddressLookupUK></SOAP-ENV:Body></SOAP-ENV:Envelope>

2 Cevap

You could use http://www.php.net/manual/en/book.tidy.php eg:

<?php
$xml = '<?xml version="1.0" encoding="UTF-8"?>...</SOAP-ENV:Envelope>';
$config = array(
            'indent'         => true,
            'output-xml'     => true,
            'input-xml'     => true,
            'wrap'         => '1000');

// Tidy
$tidy = new tidy();
$tidy->parseString($xml, $config, 'utf8');
$tidy->cleanRepair();
echo tidy_get_output($tidy);
?>

ancak ilk php uzantısı yüklemeniz gerekir.

EDIT:

Xml dışarı temel yazdırma. Bunu o biçimlendirilmemiş yayınlanmıştır beri okumak zordu gerçek xml uyacak şekilde ayarlamak gerekebilir. Youll protentialy i çocuklara döngü gerektirir hangi herhalde iç içe unsurları ele almak gerekir. Eğer varsa ve ben de özelliklerini herhalde ... Bu konuda daha fazla ayrıntı için SimpleXML dokümanlar başvurabilirsiniz.

foreach($xml->Body as $element => $value)
{
  echo "$element: $children";
}

Umm htmlspecialchars kullanın veya htmlentities dize kodlamak için ...? Bu yolu ana html e-posta "kod" olarak gösterecektir.