Я пытаюсь сопоставить определенные элементы, используя XSLT. Мой входной документ очень большой, и исходный XML-файл не загружается после обработки следующего кода (особенно это касается первой строки).
<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>
Очевидно, XSLT не загружается после " Model_Management.Model ". Код PHP выглядит следующим образом:
if ($xml->loadXML($source_xml) == false) {
die('Failed to load source XML: ' . $http_file);
}
Затем он не может выполнить loadXML
и сразу же умирает. Я думаю, что есть два варианта сейчас.
1) Я должен установить максимальное время выполнения. Честно говоря, я не знаю, как это сделать для встроенного процессора PHP 5 XSLT.
2) Подумайте о другом способе сопоставления.
Как лучше всего с этим справиться?
Входной документ можно найти по адресу http://krisvandenbergh.be/uml_pricing.xml
Любая помощь будет принята с благодарностью! Спасибо.