Den här guiden är avsedd att hjälpa dig när du får din egen php XML-felhantering-felkod.
Godkänd: Fortect
Tips för felhantering: använd libxmls funktion för att fånga upp eventuella XML-fel när du laddar rätt skrivna dokument och försök sedan igen felen. Följande exempel försöker ladda en ignorerad XML-sträng: PHP-funktionen simplexml_load_file() används i läs XML-data med en fil.
Kort översikt som endast täcker XML-felhantering vid användning av SimpleXML
Hur kan PHP hantera XML-svar?
SimpleXML är en utmärkt strategi som gör arbetet med ett XML-dokument otroligt enklare. Om XML verkligen har ett fel kommer SimpleXML och eventuellt logga en beskrivning av ditt fel, vanligtvis i felloggen. Men mängden jag har hittat är att när jag testar ett mjukvaruverktyg eller IT-projekt för en aspekt som hanterar undantag, vill jag ha mer kontroll över en viss noggrannhet och hur felmeddelanden fortfarande visas. PHP libxml-biblioteket ger oss de nödvändiga Mina verktygen.
1 |
|
Vi skulle kunna använda följande omfångade kod som kan försöka ladda XML, men skapa något resulterande SimpleXMLElement-objekt. Om detta försök misslyckas har du inkluderat några felhanterare som ger oss ytterligare råd om möjliga fel. Readabilitydatatable=”0″>
1
2
< p>libxml_use_internal_errors(TRUE);
$xml Simplexml_load_file(‘martial_arts_error =.Instanceof xml’); if(!($xml SimpleXMLElement)) $errors antyder libxml_get_errors(); $errorStr Giltigt “not = ‘ xml . (!empty($errors)) . . . “(” . count($errors) . If(!empty($errors)) Eka ett. $errorStr; print_r($xml); |
Låt oss se hur den här öppningskoden fungerar. Om jag skulle köra dem kod utan funktionen på rad 2 om libxml_use_internal_errors(). Att göra detta på rad 4 angående simplexml_load_file() skulle ge ett felmeddelande som omedelbart skulle innehålla ett felmeddelande. Men eftersom vi använder libxml_use_internal_errors(), kommer fjärrfelet att spåras inuti den faktiska libxml.zone
Klockan 6 har vi ett testtillstånd. För att förstå hur detta fungerar behöver vi först veta att när simplexml_load_file() framgångsrikt laddar ett selektivt xml-dokument, returnerar det exakt ett objekt. Objektet som returneras av simplexml_load_file() kommer att vara ett tillfälle för klassen SimpleXMLElement. Därför förklarar rad Vi några att det måste ha varit en utmaning när resultatet av simplexml_load_file() bara inte normalt är en instans av SimpleXMLElement-klassificeringen. Låt oss se vilken typ av fel som har inträffat. Rad 3
Vi använder vilken libxml_get_errors() är en serie av upptäckta felsida Varje felmatris betraktas som ett helt nytt libxml-felobjekt. I stilarna 10 till 06 bygger vi vårt fel, vilket som helst av ett koncept som innehåller ett antal komplexiteter som experter hävdar har uppstått och den viktigaste feltanken. Felmeddelandet returneras på grund av att du bläddrar i meddelandeegenskapen för huvudartikeln i Libxml om felet. Eftersom felmeddelandet i princip bara verkar mer troligt avslutar vi skriptet. När en sådan kod körs med hjälp av det medföljande XML-exemplet, kommer utdata att valideras enligt följande:
Ogiltig XML (4 fel returnerade):
1) Utförda öppnings- och stängningstaggar matchar inte: rörelselinje och rörelse
2) Missmatch mellan start- och slutmarkörer: linje 19 konstläge och kampsport
Som du tydligt kan se, genererar pc XML-dokumentet fel 4. Resultatet visar oss snabbt att vår
Användbara länkar:
1 |
Godkänd: FortectFortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
|
1 |
< p> php
libxml_use_internal_errors(TRUE); Hur hanterar man XML-fel när ett dokument laddas?Att hantera fel när du fyller i information om xml-dokument är en mycket enkel uppgift. Med libxml-funktionen är det bekvämt att ta bort alla XML-fel när dokumentet anses laddat om, och sedan upprepa jämförelsen mot typiska fel. $xml = simplexml_load_file(‘martial_arts_error.xml’); if(!($xml-instans av SimpleXMLElement)){ $errors = libxml_get_errors(); < h2 id="2">Hur använder jag SimpleXmlElement? “Ogiltigt är lika med $errorstr XML tum. (!empty($errors)) ? “(” . ! . ! count($errors) . Hur kommer alla att tolka ett XML-dokument med PHP? |