J'essaie de transmettre le code XML ci-dessous, en utilisant en premier lieu la fonction php simplexml_load_file. Actuellement, le code php est incroyablement simple comme suit:php5 simple_xml_file erreur d'analyse
if (file_exists('test.xml')) {
$xml = simplexml_load_file('test.xml');
print_r($xml);
} else {
exit('Failed to open test.xml.');
}
Cependant sur l'exécution de ce fichier, il donne d'abord une erreur d'analyse que l'URI PostcodeAnywhere n'est pas absolue. En fin de compte, le script renvoie l'erreur "La chaîne n'a pas pu être analysée en XML".
Le fichier XML lui-même semble valider et ne montre aucune erreur.
<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="PostcodeAnywhere">
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" type="xs:string" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Items" type="xs:string" minOccurs="0" />
<xs:element name="BillingModel" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<Id>3898</Id>
<Name>DIA Members</Name>
<Items />
<BillingModel>PREPAID</BillingModel>
</Table1>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
En regardant cela, vous avez raison. Un grand merci pour l'aide. – simnom