Здравейте!
Чрез PHP и SOAP изпращам заявка към WebService, като получавам следния response:
Чрез PHP и XSLT се опитвам, да "поизчистя" respons-a, като искам следната структура:
За целта ползвам следния XSLT скрипт:
Ползвам NET Beans и като опитам чрез програмата да трансформирам XML файла, се получава, това което искам. Въпроса е, че когато опитам чрез PHP:
ми дава следната грешка:
Някой има ли идеи, къде греша?
Чрез PHP и SOAP изпращам заявка към WebService, като получавам следния response:
HTML:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:foundUser xmlns:ns2="http://services.blabla.bg">
<return>
<id>99</id>
<anrede><![CDATA[Mister]]></anrede>
<title><![CDATA[Dr.]]></title>
<name><![CDATA[Stefanow]]></name>
<vorname><![CDATA[Stefan]]></vorname>
<passwort><![CDATA[FJRdfdJjg]]></passwort>
<metaData>
<meta>
<id>2</id>
<type>100</type>
<value>stefan.stafanow@abv.bg</value>
</meta>
<meta>
<crdate>1322608871291</crdate>
<id>1</id>
<type>101</type>
</meta>
<meta>
<id>3</id>
<type>3</type>
<value>stefan.stafanow@abv.bg</value>
</meta>
</metaData>
<messages/>
<comments/>
<memberOf/>
<adminOf/>
<superUserOf/>
<employeeOfCompanies/>
<ownerOf/>
<bookmarkedOffers/>
<bookmarkedCompanies/>
<purchasedOffers/>
<companiesOffer/>
</return>
</ns2:foundUser>
</soap:Body>
</soap:Envelope>
Чрез PHP и XSLT се опитвам, да "поизчистя" respons-a, като искам следната структура:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id>99</id>
<anrede><![CDATA[Mister]]></anrede>
<title>Dr</title>
<name><![CDATA[Stefanow]]></name>
<vorname><![CDATA[Stafanow]]></vorname>
</user>
За целта ползвам следния XSLT скрипт:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration = "no" encoding="UTF-8" media-type="text/xml" />
<xsl:strip-space elements="*"/>
<xsl:template match="return">
<user>
<id>
<xsl:value-of select="id" />
</id>
<anrede>
<xsl:value-of select="anrede" />
</anrede>
<title>
<xsl:value-of select="title" />
</title>
<name>
<xsl:value-of select="name" />
</name>
<vorname>
<xsl:value-of select="vorname" />
</vorname>
</user>
</xsl:template>
</xsl:stylesheet>
Ползвам NET Beans и като опитам чрез програмата да трансформирам XML файла, се получава, това което искам. Въпроса е, че когато опитам чрез PHP:
PHP:
private function TransformXml($xmlFile, $xsltFile)
{
$xml = new DOMDocument;
$xml->load($xmlFile);
$xsl = new DOMDocument;
$xsl->load($xsltFile);
// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
return $proc->transformToXML($xml);
}
Реалноактич това е грешка, поради факта че нямам начален таг...XML Parsing Error: no element found
Location: http://localhost/oop/UserService.php
Line Number 1, Column 1:
^
Някой има ли идеи, къде греша?