Im работает с PHP5, и мне нужно преобразовать XML в следующем виде: <list> <item label="(1)">some text</item> <item label="(2)"> <anotherNode>some text</anotherNode <item label="a">some text</item> <item label="b">some text</item> </item> </list> В нечто подобное: <list> <item label="(1)">some text</item> <item label="(2)"> <anotherNode>some text</anotherNode> <list> <!– opening new wrapper node–> <item label="a">some text</item> <item label="b">some text</item> </list> <!– closing new […]
Я хочу использовать комбинацию xml & xslt в качестве системы шаблонов. Вопрос, на который я хочу ответить, может: xslt и PHP взаимодействуют друг с другом (т.е. переменные общего доступа)?
У меня есть структура xml, например: <PartsDetail> <Id>1481</Id> <Desc>test1</Desc> <GlobDesc>test2</GlobDesc> <Price Cur="UAH">+798.27</Price> </PartsDetail> <PartsDetail> <Id>0741</Id> <Desc>test2</Desc> <GlobDesc>test2</GlobDesc> <Price Cur="UAH">+399.14</Price> </PartsDetail> И, на мой взгляд, я делаю некоторые преобразования с «ценой» (я предлагаю посмотреть, как 399.14). Я использую это для преобразования: <xsl:call-template name="showNumberWithThousands"> <xsl:with-param name="value"> <xsl:call-template name="parseNumber"> <xsl:with-param name="value" select="Price"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> Также мне нужно […]
Я пытаюсь объединить два xml-файла и с XSLT-файлом преобразовать их в XHTML-страницу. Я не делал этого раньше и не могу понять, как это сделать. Это то, что я до сих пор, с одним XML-файлом: <?php $xsl = new DOMDocument(); $xsl->load("file.xsl"); $inputdom = new DomDocument(); $inputdom->load("file.xml"); $proc = new XSLTProcessor(); $xsl = $proc->importStylesheet($xsl); $proc->setParameter(null, "", ""); […]
Интересно, можно ли и как можно зарегистрировать функцию пользовательского пространства PHP с XSLT-процессором, способным не только взять массив узлов, но и вернуть его? Прямо сейчас PHP жалуется на преобразование массива в строковое преобразование с использованием общей настройки: function all_but_first(array $nodes) { array_shift($nodes); shuffle($nodes); return $nodes; }; $proc = new XSLTProcessor(); $proc->registerPHPFunctions(); $proc->importStylesheet($xslDoc); $buffer = $proc->transformToXML($xmlDoc); […]
Вопрос был задан, но был удален от него, прежде чем он получил ответ. Поскольку я считаю, что вопрос звучит и закончен и служит цели, я снова прошу об этом и даю ответ, который я уже написал для оригинального вопроса. Будет ли XPath 2.0 и / или XSLT 2.0 реализовываться на PHP когда-нибудь или есть какие-то […]
есть ли способ конвертировать все атрибуты узлов в дочерние узлы с использованием XSLT 1.0 ? Он должен работать безупречно с PHP xsltProcessor . Атрибуты должны быть удалены (если возможно). Пример ввода: <root aaa="111" bbb="222" ccc="333"> <bob ddd="444" /> <data eee="555"> <steve>bar1</steve> <john>bar2</john> <peter fff="666">bar3</peter> </data> <greg ggg="777" /> </root> Желаемый результат: <root> <aaa>111</aaa> <bbb>222</bbb> <ccc>333</ccc> […]
Я пытаюсь прототипировать преобразование, чтобы превратить xsl:schema в php-интерфейс. У меня небольшая проблема, xsd:simpleType элементами xsd:simpleType которые имеют атрибут name соответствующий атрибуту type элементов xsd:element . Предположим, у меня есть такая схема: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Foo" type="Bar"/> <xsd:simpleType name="Bar"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="32"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> Я хотел бы получить следующий результат. <?php interface Foo […]
Я создаю систему управления счетами с использованием xml и PHP, но последняя версия PHP не поддерживает XSLT 2.0 – поэтому я должен искать альтернативу sum (). Как преобразовать действительную функцию xslt 2 "sum (unitprice * quantity)" в xslt 1.0? Материал XML основан на примерах Джона Я попробовал его с набором узлов, но он не поддерживается […]
Возможно ли / легко обновить библиотеку PHP для использования XSLT 2.0? Текущая настройка: xsl XSL enabled libxslt Version 1.1.24 libxslt compiled against libxml Version 2.6.32 EXSLT enabled libexslt Version 1.1.24