Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Парсинг и\или редактирование XML (https://forum.zone-game.info/showthread.php?t=17496)

Aristocrat 08.01.2012 05:56

Парсинг и\или редактирование XML
 
Уважаемые форумчане.

После попадания мне в руки скриптов ПТС-freya, возникла потребность переработать большой объем XML)

Буду благодарен вам за подсказку софта-помощника.

Основная текущая потребность:

XML такого вида:

Цитата:

<item id='1' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
</item>
<item id='2' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
</item>
<item id='3' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
</item>
разобрать, вычленить id, сделать запрос в базу на предмет наличия значения для этого id и подставить строку в XML вида:

Цитата:

<item id='1' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
<set name='type' val='значение для id1' />
</item>
<item id='2' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
<set name='type' val='значение для id2' />
</item>
<item id='3' name="One">
<set name='price' val='100' />
<set name='p_dam' val='1' />
<set name='m_dam' val='1' />
<set name='type' val='значение для id3' />
</item>


Буду благодарен за любые рабочие идеи)

Добавлено через 18 часов 49 минут
Срочность больше не актуальна, но в целом вопрос работы с XML остается открытым.

Неужели только самописные парсеры?(

Gaikotsu 09.01.2012 10:48

Re: Парсинг и\или редактирование XML
 
ну сами хмлки загрузить и разобрать то не проблема, к примеру простейший путь - через php классом SimpleXML

а вот обратная запись уже погемморойней.

Aristocrat 20.01.2012 08:33

Re: Парсинг и\или редактирование XML
 
Я пытался сделать инструмент на PHP. Разбирается без проблем, а вот собрать, как вы и говорите довольно тяжело. Основной проблемой было корректная расстановка ' и " в нужных местах и правильное закрытие тегов.

Я имею ввиду другое. Может быть есть инструмент, который позволит считывать один элемент XML и в зависимости от его значения, изменять любые другие куски XML или импортировать их сразу из SQL?

avemaria 22.04.2012 15:23

Re: Парсинг и\или редактирование XML
 
тоже актуально

linliss 22.04.2012 15:25

Re: Парсинг и\или редактирование XML
 
никогда непонимал, зачем перегонять готовые скрипты в XML:ek:

Хлорка 22.04.2012 16:06

Re: Парсинг и\или редактирование XML
 
Хлорка бы сделал на яве, но она корыстная.

DoYrdenDzirt 22.04.2012 16:21

Re: Парсинг и\или редактирование XML
 
Для работы с xml в джаве есть отличная либа jdom, а для работы с БД в Вашем случае вполне сгодится jdbc. Скиньте sql файл со структурой таблицы и xml который нужно перепарсить.

PaInKiLlEr 22.04.2012 16:24

Re: Парсинг и\или редактирование XML
 
напишу на заказ парсер птс скриптов за $ естественно)

Arzamas 22.04.2012 17:36

Re: Парсинг и\или редактирование XML
 
Вот "парсер" по заданию из первого топика... если надо под конкретное задание, пишите)

PHP код:

<?php
$conf 
= array(
                
'mysql_host' => 'localhost',
                
'mysql_db' => 'test',
                
'mysql_user' => 'root',
                
'mysql_pass' => 'Pa$$w0rD'
            
);
            
$file "./test.xml"//обрабатываемый файл

mysql_connect($my_conf['mysql_host'],$my_conf['mysql_user'],$my_conf['mysql_pass']);
mysql_select_db($my_conf['mysql_db']);

$contents_array explode("</item>",file_get_contents($file)); //мутим массив из строки
file_put_contents($file,""); //очищаем файл
foreach($contents_array as $value){ //ковыряем все значения в массиве по очереди
    
preg_match("|id='(.*)'|U",$value,$out); //выдергиваем ИД
    
if($out[1] != ''){
        
$data mysql_fetch_array(mysql_query("SELECT * FROM data_table WHERE id='$out[1]'")); //дергаем данные из базы (из таблицы data_table) для этого ИД
        
file_put_contents($file,$value."<set name='type' val='$data[id_value]'/></item>\r\n",FILE_APPEND); //добавляем строку и записываем в файл
    
}
}
mysql_close();
?>

Скачать это безобразие http://rghost.ru/37713165


Текущее время: 21:09. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot