Реклама на сайте Advertise with us

Обработка XML

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 06.02.10
Сообщения: 795
Рейтинг: 716

Ссылка на сообщениеДобавлено: 18/01/13 в 10:41       Ответить с цитатойцитата 

Есть ли решение или стоит самому писать?
Задача - есть ХМЛ с атрибутами.
СмартСидж не берет его. вообщем надо преобразовывать его в ХМЛ без атрибутов на лету.

Профессиональный видео монтаж И обработка видео.
Мой хостинг

0
 



С нами с 19.11.10
Сообщения: 34
Рейтинг: 14

Ссылка на сообщениеДобавлено: 18/01/13 в 11:17       Ответить с цитатойцитата 

SimpleXML в пыхе, а для чего тебе именно это надо?

5
 



С нами с 06.02.10
Сообщения: 795
Рейтинг: 716

Ссылка на сообщениеДобавлено: 18/01/13 в 11:36       Ответить с цитатойцитата 

для того что бы СмартСидж мог скушать. SimpleXML по умолчанию есть, или его как-то надо инициировать?
Код: [развернуть]
у меня не сработал.

Профессиональный видео монтаж И обработка видео.
Мой хостинг

0
 



С нами с 19.11.10
Сообщения: 34
Рейтинг: 14

Ссылка на сообщениеДобавлено: 18/01/13 в 12:24       Ответить с цитатойцитата 

Yank: барин, покаж xml.

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 18/01/13 в 13:08       Ответить с цитатойцитата 

http://php.net/manual/ru/book.xsl.php


index.php
Код:
<?php

$xml = new DOMDocument();
$xsl = new DOMDocument();
$xslt = new XSLTProcessor();

$xml->load('test.xml');
$xsl->load( 'test.xsl', LIBXML_NOCDATA);

$xslt->importStylesheet($xsl);
$xslt->transformToDoc($xml)->save('test2.xml');


test.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<chanel>
   <item title="Title1" link="Link1">
      <foo>
         <bar id="id1">bar1</bar>
      </foo>
   </item>
   <item title="Title2" link="Link2">
      <foo>
         <bar id="id2">bar2</bar>
      </foo>
   </item>
</chanel>


Преобразует все атрибуты в элементы:

test.xsl
Код:
<?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" version="1.0" encoding="UTF-8" indent="yes" />
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
    </xsl:template>
    <xsl:template match="@*">
        <xsl:element name="{local-name(.)}">
            <xsl:value-of select="." />
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>

test2.xml
Код: [развернуть]


Если нужно преобразовать атрибуты только определённых элементов (скажем item), то изменится только одна строка:

test.xsl
Код:
<?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" version="1.0" encoding="UTF-8" indent="yes" />
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
    </xsl:template>
    <xsl:template match="item/@*">
        <xsl:element name="{local-name(.)}">
            <xsl:value-of select="." />
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>

test2.xml
Код: [развернуть]

5
 



С нами с 06.02.10
Сообщения: 795
Рейтинг: 716

Ссылка на сообщениеДобавлено: 18/01/13 в 17:10       Ответить с цитатойцитата 

Спасибо большое!

Профессиональный видео монтаж И обработка видео.
Мой хостинг

1
 



С нами с 24.03.05
Сообщения: 17
Рейтинг: 17

Ссылка на сообщениеДобавлено: 29/01/13 в 16:35       Ответить с цитатойцитата 

Использую в PHP для работы с XML два разных способа.
Первый способ.
$xml_parser = xml_parser_create();

Второй способ
$ob=simplexml_load_string($str);

Оба способа позволяют удобно работать с XML
Какой выбрать – дело привычки.
Для сложных документов я предпочитаю xml_parser_create()

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »