Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: функция saveXML
Форумы портала PHP.SU » » XML и его обработка » функция saveXML

Страниц (2): [1] 2 »
 

1. ddess - 06 Июля, 2014 - 16:23:25 - перейти к сообщению
Не знаю, то ли к новичкам обратиться, то ли сюда.
В ХML, XSL - начинающий.

Вот прога:
****
<?php
$dom = new DOMDocument('1.0', 'utf-8');

$root = $dom->createElement('root');
$root->setAttribute('date','9-12-2009');

$node = $dom->createElement('node');
$text = $dom->createTextNode('Привет');
$node->appendChild($text);
$root->appendChild($node);

$dom->appendChild($root);
echo $dom->saveXML();
?>
************

Запускаю в FF. Выводит:
Привет

Но если посмотреть в браузере исходный код, то получим:

<?xml version="1.0" encoding="utf-8"?>
<root date="9-12-2009"><node>Привет</node></root>


То есть, почему то saveXML выводит не исходный xml-код, а текст из кода.

1 Вопрос - почему ? Или я что то не уловил ?
2 Вопрос. Почему корректно выводится кирилица, если установлена кодировка utf-8 ?
Может, это внутреннее преобразование кодировок ? Кстати, в IE-8 на это иногда ругается, но не всегда.

3 Вопрос, попутный, не связанный с этим примером. Почему если я изменяю код в *.XML на диске, то при запуске его в IE-8 кнопка "обновление страницы" не срабатывает ?
Выход я нахожу такой: Создаю в IE-8 новую пустую вкладку, потом ее удаляю, потом обновляю страницу с XML. И тогда IE видит обновление XML файла. Но это коряво.

4 Вопрос, попутный. Почему XSL не работает в FF, хотя работает в IE ?

На эти вопросы в тырнете поюзал, но не нашел разгадки.

Благодарствую за внимание.
(Добавление)
Забыл еще вопрос, как начинающего:

Что в PHP лучше для работы с XML ?
DOM или SimpleXML ?

До SimpleXML - я еще пока не дошел.

Эти варианты взаимозаменяемы ?
Какие у них плюсы и минусы, сравнительно ?
2. caballero - 06 Июля, 2014 - 16:57:02 - перейти к сообщению
какое отношение то как сохраняет savexml имеет к тому как показывает браузер?
3. ddess - 06 Июля, 2014 - 20:42:45 - перейти к сообщению
caballero пишет:
какое отношение то как сохраняет savexml имеет к тому как показывает браузер?


saveXML — Сохраняет XML дерево из DOM.
echo - выводит это дерево.

Так я понимаю. И так в примерах написано.

Кстати, я еще вопросы задал.
4. Viper - 06 Июля, 2014 - 23:40:37 - перейти к сообщению
1.
ddess пишет:
То есть, почему то saveXML выводит не исходный xml-код, а текст из кода.
нормальное поведение.
2. Потому что юникод. Читайте википеды. IE8 осел ещё тот. Забудьте про него.
3. Кеширование.
4. Все работает, наверное вы что-то неправильно делаете.
5. http://stackoverflow[dot]com/questio[dot][dot][dot]lexml-extensions

PS! Лично использую и DOM и SimpleXML. Просто зависит от задачи.
5. ddess - 07 Июля, 2014 - 08:41:36 - перейти к сообщению
Спасибо за внимание,
но 1 ответ меня не удовлетворил своей неопределенностью.

А по поводу четвертого. Были примеры, когда все прекрасно работало в IE и ругалось в FF. Я их найти не могу сейчас. Кстати, в тырнете поюзал - многие тоже самое утверждали.

А вот привожу пример, когда в IE все работает нормально,
а в FF работает, но не форматирует вывод.

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="aa.xsl" ?>
<tutorial>
<dog caption="Собака: " name="Шарик">
Привет !
<dogInfo weight="18 кг" color="рыжий с черными подпалинами"/>
</dog>
</tutorial>



<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<B> <xsl:value-of select="//dog/@caption" /> </B>
<xsl:value-of select="//dog/@name" />. Ё√срыър
<xsl:value-of select="//tutorial/dog/dogInfo/@weight" />,
<xsl:value-of select="//dogInfo/@color" />
<p><i> <xsl:value-of select="//dog" /> </i> </p>
</xsl:template>
</xsl:stylesheet>




// Лично использую и DOM и SimpleXML. Просто зависит от задачи. //
_________
А подробней чуток ?
6. Viper - 07 Июля, 2014 - 10:01:16 - перейти к сообщению
1. Я собственно не особо понял чем xml-код отличается от "текст из кода" в вашем понимании.
2. Многие индусы утверждали?
3.
ddess пишет:
А вот привожу пример, когда в IE все работает нормально,
а в FF работает, но не форматирует вывод.

Не работает потому что неправильно делаете.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <xsl:output method="html"/>
перед
CODE (htmlphp):
скопировать код в буфер обмена
  1. <xsl:template match="/">
где?

4. Ссылку из п. 5 смотрели?

PS! Я бы лично тестировал в FF xml. Т.к. IE часто срет на стандарты и правила. В Microsoft у индусов свое понимание стандартов W3C и брать IE как тестовый браузер можно только в последнем случае(ну или если требуется поддержка корпоративного говна(старья)).
7. ddess - 07 Июля, 2014 - 23:57:27 - перейти к сообщению
С вашей строчкой - работает.

Дело не в моем предпочтении к IE.
Нигде в учебниках нет этой строчки.
Причем, авторы часто не отражают и дату написания своих учебников и примерчиков.


Могёте посоветовать в тырнете современный онлайн учебник по XML, XSL, думам и прочим,
чтоб не слишком толмудный, но достаточный, для новичков ?
8. caballero - 08 Июля, 2014 - 00:10:52 - перейти к сообщению
при чем тут XSL
браузеру нужно просто указать в заголовке какой тип данных ему передается X<L или просто текст
или расширение файла передавать не xml а txt например
9. Viper - 08 Июля, 2014 - 09:16:18 - перейти к сообщению
ddess если знаете англ.
http://msdn[dot]microsoft[dot]com/en-us/[dot][dot][dot]8v=vs[dot]85%29[dot]aspx
https://developer[dot]mozilla[dot]org/en[dot][dot][dot]cs/XSLT_in_Gecko

также к прочтению обязательно
http://msdn[dot]microsoft[dot]com/en-us/[dot][dot][dot]v=vs[dot]110%29[dot]aspx
https://developer[dot]mozilla[dot]org/en[dot][dot][dot]S/docs/Web/XPath

caballero дело не в типе ;)
10. ddess - 08 Июля, 2014 - 12:03:37 - перейти к сообщению
Спасибо, друг !

Жаль, на японском не дали источник новичку.
Я японский обожаю.
11. Мелкий - 08 Июля, 2014 - 12:35:18 - перейти к сообщению
ddess пишет:
Жаль, на японском не дали источник новичку.
Я японский обожаю.

Вам повезло!
https://developer[dot]mozilla[dot]org/ja[dot][dot][dot]cs/XSLT_in_Gecko
https://developer[dot]mozilla[dot]org/ja/docs/XPath
12. ddess - 08 Июля, 2014 - 12:36:08 - перейти к сообщению
В долбанном FF смотришь исходный код страницы:

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="aa.xsl" ?>

<tutorial>
<dog caption="������: " name="�����">
������ !
<dogInfo weight="18 ��" color="����� � ������� �����������"/>
</dog>
</tutorial>


А в неправильном IE вывод правильный

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="aa.xsl" ?>

<tutorial>
<dog caption="Собака: " name="Шарик">
Привет !
<dogInfo weight="18 кг" color="рыжий с черными подпалинами"/>
</dog>
</tutorial>
13. caballero - 08 Июля, 2014 - 13:13:26 - перейти к сообщению
браузеры не обязаны делать XSL преобразования
преобразовывайте на сервере и отправляйте в браузер нормальный HTML
14. Viper - 08 Июля, 2014 - 20:02:19 - перейти к сообщению
ddess это не FF долбаный, это кодировка у вас придурошная. Используйте UTF-8. Избавитесь от многих проблем.
15. ddess - 09 Июля, 2014 - 14:23:49 - перейти к сообщению
Viper пишет:
ddess это не FF долбаный, это кодировка у вас придурошная. Используйте UTF-8. Избавитесь от многих проблем.


То бишь, IE в данном случае, понимает обе кодировки,
а долбанный FF - только UTF-8.

А кодировка windows-1251 - тоже придурочная, потому что ее понимает только IE, а не FF !!


Viper,
я понимаю исторические традиционные мозоли IE,
но речь идет о конкретном случае, в котором IE радует больше и ближе к людям.

 

Powered by ExBB FM 1.0 RC1