J'essaie de faire correspondre certains éléments en utilisant XSLT. Mon document d'entrée est très volumineux et le code source source ne se charge pas après le traitement du code suivant (en particulier la première ligne).Impossible de charger un document XML énorme (supposer à tort que cela est dû au traitement XSLT)
<xsl:template match="XMI/XMI.content/Model_Management.Model/Foundation.Core.Namespace.ownedElement/Model_Management.Package/Foundation.Core.Namespace.ownedElement">
<rdf:RDF>
<rdf:Description rdf:about="">
<xsl:for-each select="Foundation.Core.Class">
<xsl:for-each select="Foundation.Core.ModelElement.name">
<owl:Class rdf:ID="@Foundation.Core.ModelElement.name" />
</xsl:for-each>
</xsl:for-each>
</rdf:Description>
</rdf:RDF>
</xsl:template>
Apparemment, le XSLT ne parvient pas à charger après "Model_Management.Model". Le code PHP est la suivante:
if ($xml->loadXML($source_xml) == false) {
die('Failed to load source XML: ' . $http_file);
}
Il ne parvient pas à effectuer loadXML
et meurt immédiatement. Je pense qu'il y a deux options maintenant.
1) Je devrais définir une durée d'exécution maximale. Franchement, je ne sais pas comment je fais cela pour le processeur PHP 5 XSLT intégré. 2) Pensez à une autre façon de faire correspondre.
Quelle serait la meilleure façon de gérer cela?
Le document d'entrée se trouvent à http://krisvandenbergh.be/uml_pricing.xml
Toute aide serait appréciée! Merci.
Le document d'entrée est plus de 10000 lignes .. Il peut être trouvé ici http://krisvandenbergh.be/uml_pricing.xml –
Et en passant, un point (".") Est un caractère valide pour un nom qualifié dans un document XML, c'est-à-dire qu'il n'y a pas besoin de s'échapper (voir http://www.w3.org/TR/REC-xml/#NT-NameChar). –
Modifié les questions et donné plus de détails. –