Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];

Вниз

ДОМ2 – как построить XML?   Найти похожие ветки 

 
И Павел   (2009-11-07 15:54) [0]

Здравствуйте!

Я только начинаю учить web программирования, и у меня возникла такая проблема:
Пытаюсь пропарсить XML через XSLTProcessor.

Файл names.xml:
<?xml version="1.0" encoding="windows-1251"?>
<piples>
 <man>
   <name>Иванов</name>
   <age>20</age>
 </man>
 <man>
   <name>Петров</name>
   <age>30</age>
 </man>
 <man>
   <name>Сидоров</name>
   <age>40</age>
 </man>
</piples>

Файл names.xls:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <xsl:for-each select="piples/man">
   <xsl:value-of select="name" />
   <br/>
 </xsl:for-each>
</xsl:template>

</xsl:stylesheet>


Файл 1.php:
<?php
 $xml = new DOMDocument;
 $xml->load("names.xml");
 $xsl = new DOMDocument;
 $xsl->load("names.xml");
 
 $proc = new XSLTProcessor;
 $proc->importStyleSheet($xsl);
 $proc->transformToURI($xml, "out.html");
?>


При этом, если запустить файл php все выводится в нерусской кодировке и игнорируются брейки.
Но если парсить просто открыв names.xml то все выводится как надо.

Подскажите, пожалуйста, как исправить такую проблему с кодировкой?


 
И Павел   (2009-11-07 16:06) [1]

Ошибку с брейками нашел: грузил xml дважды:

$xml = new DOMDocument;
$xml->load("names.xml");
$xsl = new DOMDocument;
$xsl->load("names.xml");


Остается проблема с кодировкой...


 
xayam ©   (2009-11-07 16:13) [2]


> При этом, если запустить файл php все выводится в нерусской
> кодировке и игнорируются брейки.
> Но если парсить просто открыв names.xml то все выводится
> как надо.

так а в какой кодировке выводишь?
скорей всего достаточно прописать перед выводом строку -


header ( "Content-Type: text/html; charset=windows-1251" );

или любую кодировку какую надо


 
И Павел   (2009-11-07 16:20) [3]

xayam ©, спасибо.

Но, к сожалению:
<?php
 header ( "Content-Type: text/html; charset=windows-1251" );

 $xml = new DOMDocument;
 $xml->load("names.xml");
 $xsl = new DOMDocument;
 $xsl->load("names.xsl");
 
 $proc = new XSLTProcessor;
 $proc->importStyleSheet($xsl);
 $proc->transformToURI($xml, "out.html");
?>

дал такой же результат.
Просто мой браузер неправильно определил кодировку. Выбрал автовыбор и все заработало. Но можно ли как нибудь сделать это программно?


 
И Павел   (2009-11-07 16:23) [4]

С header ( "Content-Type: text/html; charset=KOI8-R " ) все заработало!
xayam © - еще раз, большое спасибо.


 
xayam ©   (2009-11-07 16:33) [5]


> И Павел   (07.11.09 16:20) [3]
> Просто мой браузер неправильно определил кодировку. Выбрал
> автовыбор и все заработало. Но можно ли как нибудь сделать
> это программно?

в names.xls ты можешь еще прописать вывод мета-тега

...
<head>
<meta content="text/html; charset=windows-1251" http-equiv="Content-type">
</head>
...

остальное зависит от клиента-браузера. Firefox должен правильно показывать


 
xayam ©   (2009-11-07 16:41) [6]

Вот пример работающей таблицы стилей для архивов этого форума

http://xayam.com/trd.xsl


 
И Павел   (2009-11-07 17:20) [7]

xayam ©, спасибо.
Через meta тоже попробовал, правда и там требует KOI8-R или UTF8...


 
xayam ©   (2009-11-07 18:37) [8]


> И Павел   (07.11.09 17:20) [7]
> xayam ©, спасибо.
> Через meta тоже попробовал, правда и там требует KOI8-R
> или UTF8...

utf-8 используй, я всегда так делаю


 
И Павел   (2009-11-07 19:04) [9]


> xayam ©

OK



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-1233121999
Merry
2009-01-28 08:53
2010.01.10
Запрос из 2 таблиц


2-1258546185
Никита7
2009-11-18 15:09
2010.01.10
Как использовать Zlib в своей программе?


11-1205371733
Jon
2008-03-13 04:28
2010.01.10
KOL LabeledEdit


2-1258470769
valussev@mail.ru
2009-11-17 18:12
2010.01.10
ошибка при запуске с другого пк


15-1257526923
Avant Browsr
2009-11-06 20:02
2010.01.10
Где хранятся "Избранное" и "Журнал"?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский