forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   Xml парсер (http://forum.boolean.name/showthread.php?t=939)

impersonalis 23.05.2006 23:13

Xml парсер
 
Вложений: 2
XML парсер

Большое спасибо @rtur за код.

pax 10.08.2006 12:34

Re: Xml парсер
 
Вложений: 2
Посидел я пару часиков и усовершенствовал эту либу:
1. Теперь нет ограничений на атрибуты (задавалось с помощью массивов для каждого экземпляра).
2. Усовершествовал функцию загрузки xml документа... теперь его можно загрузить как отдельную ветку.
3. Не изменил синтаксис, так что все приложения использующие эту библиотеку будут работать :)


Прошу потестить на наличие багов...

ISKATEL 17.12.2006 21:39

Re: Xml парсер
 
Кто- нибуть напишите пожалуста как используя эту библиотеку записать в xml файл какие- либо данные (3 числа 1 одно слово), а потом прочитать их. Очень надо.

moka 18.12.2006 00:08

Re: Xml парсер
 
Вообщето там пример есть!

ISKATEL 18.12.2006 12:37

Re: Xml парсер
 
В примере происходит только считывание из xml, там не показано как вместо одного значения записать другое.

moka 20.12.2006 01:04

Re: Xml парсер
 
Создаёшь массив на значения, и заходишь в библиотеку, она прокомментирована. Примерно анологично считыванию. И юзаешь имеющиеся команды, их названия полностью соответствуют их значению.

Совет: Познание своей головой это на 70% приобретается больше опыта, ежели чужой головой, запомни это ;)

AbLaZe 30.05.2007 00:19

Re: Xml парсер
 
люди подскажите пожалуйста, а как работать с русским текстом в XML ?
т.е. у меня в xml-файле русский текст есть и мне нужно его загрузить в прогу, но при загрузке текст выглядит коряво (кодировка как будто не та)

что делать ?

помогите плиз ...

Черный крыс 30.05.2007 01:09

Re: Xml парсер
 
поменяй шрифт ИДЕ.

AbLaZe 30.05.2007 15:50

Re: Xml парсер
 
а при чем здесь IDE ?! :4to:

у меня ж не в редакторе текст корявый, а именно в переменных, когда я загоняю в них текст из XML

jimon 30.05.2007 17:25

Re: Xml парсер
 
если он корявый при выводе на екран ... то юзай фонт с приставкой Cyr .. к примеру "Arial Cyr"

AbLaZe 30.05.2007 18:22

Re: Xml парсер
 
люди, нашел я траблу, но она оказалась совсем не там, где я думал :(

в блитсе функция trim не хочет работать с русским текстом!!!

вот, например
test$ = " привет "
Print Trim(test$)
WaitKey
выводит на экран ПУСТОТУ :(((

че делать то ?

или если test$ = "Файл", то выдаст тока букву "Ф" .... ваще ничего не понимаю :))

просто в XMLBlitz юзается trim:
Trim(Trim(xmlNodeDataGet(nodestack[stacklevel - 1])) + " " + Trim(tag))

ваще я не понимаю что-то ... че за дела ?! :4to:

jimon 30.05.2007 20:53

Re: Xml парсер
 
trim вообще плохо что переваривает кроме английского :)
так что лутче ее не юзать imho

AbLaZe 30.05.2007 22:13

Re: Xml парсер
 
да, спасибо, я уже обошелся без нее, а если понадобится прийдется написать свою, там максимум 5 строчек кода :))), но ща влом писать!

всем пасиба за ответ!

tormoz 12.07.2007 15:06

Re: Xml парсер
 
Такая кака.
Почему то не хочет считывать стандартный хмл созданный в екселе.
Вылетает постоянно что не делай.

И наоборот: созданные им файлы в екселе не открываются.
Я расстроен
Теперь еще и эту либу самому писать :(

alcoSHoLiK 12.07.2007 15:22

Re: Xml парсер
 
Можешь показать такой файл? И зачем писать самому, если там код открытый. Можно просто поправить.

tormoz 12.07.2007 16:43

Re: Xml парсер
 
Там вообще другая структура
Нужно не править, а все с нуля писать
Задолбали мелкомягкие, расширение одно, а формат совершенно разный

И вопрос:
в каком редакторе писались файлы для этой либы ?
Это точно не ексель


Цитата:

<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>qqq</Author>
<LastAuthor>Lucky</LastAuthor>
<Created>2007-07-10T12:08:34Z</Created>
<LastSaved>2007-07-12T08:44:06Z</LastSaved>
<Company>qqq</Company>
<Version>10.4219</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<DownloadComponents/>
<LocationOfComponents HRef="file:///\\"/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>11640</WindowHeight>
<WindowWidth>15480</WindowWidth>
<WindowTopX>120</WindowTopX>
<WindowTopY>45</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Arial Cyr" x:CharSet="204"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s21">
<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
<Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Bold="1"/>
</Style>
<Style ss:ID="s22">
<Font ss:FontName="Arial Cyr" x:CharSet="204"/>
</Style>
</Styles>
<Worksheet ss:Name="Лист1">
<Table ss:ExpandedColumnCount="11" ss:ExpandedRowCount="6" x:FullColumns="1"
x:FullRows="1">
<Column ss:Width="79.5"/>
<Column ss:Width="81.75"/>
<Column ss:Width="24"/>
<Column ss:Width="69.75"/>
<Column ss:Width="30"/>
<Column ss:Width="60"/>
<Column ss:Width="18.75"/>
<Column ss:Width="72"/>
<Column ss:Width="99"/>
<Column ss:Width="93.75"/>
<Column ss:Width="295.5"/>
<Row ss:Index="2">
<Cell ss:StyleID="s21"><Data ss:Type="String">Наименование</Data></Cell>
<Cell ss:StyleID="s21"><Data ss:Type="String">Цена за плитку</Data></Cell>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"><Data ss:Type="String">Цена за кв\м</Data></Cell>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"><Data ss:Type="String">Размер</Data></Cell>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"><Data ss:Type="String">Тип текстуры</Data></Cell>
<Cell ss:StyleID="s21"><Data ss:Type="String">Способ крепления</Data></Cell>
<Cell ss:StyleID="s21"><Data ss:Type="String">Пожаростойкость</Data></Cell>
<Cell ss:StyleID="s21"><Data ss:Type="String">Информация</Data></Cell>
</Row>
<Row>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
<Cell ss:StyleID="s21"/>
</Row>
<Row>
<Cell><Data ss:Type="String">AP20TNR+</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="Number">988</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">руб.</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="Number">717</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">долл.</Data></Cell>
<Cell><Data ss:Type="String">12*455*3030</Data></Cell>
<Cell><Data ss:Type="String">мм</Data></Cell>
<Cell><Data ss:Type="String">камень</Data></Cell>
<Cell><Data ss:Type="String">вертикальный</Data></Cell>
<Cell><Data ss:Type="String">Класс НГ</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">К каждой панели идут углы, герметик, и краска в цвет панели.</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">AP20TOR+</Data></Cell>
<Cell ss:StyleID="s22" ss:Formula="=+R[-1]C+1"><Data ss:Type="Number">989</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">руб.</Data></Cell>
<Cell ss:StyleID="s22" ss:Formula="=+R[-1]C-1"><Data ss:Type="Number">716</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">долл.</Data></Cell>
<Cell><Data ss:Type="String">12*455*3030</Data></Cell>
<Cell><Data ss:Type="String">мм</Data></Cell>
<Cell><Data ss:Type="String">камень</Data></Cell>
<Cell><Data ss:Type="String">вертикальный</Data></Cell>
<Cell><Data ss:Type="String">Класс НГ</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">К каждой панели идут углы, герметик, и краска в цвет панели.</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">AP20TYN+</Data></Cell>
<Cell ss:StyleID="s22" ss:Formula="=+R[-1]C+1"><Data ss:Type="Number">990</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">руб.</Data></Cell>
<Cell ss:StyleID="s22" ss:Formula="=+R[-1]C-1"><Data ss:Type="Number">715</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">долл.</Data></Cell>
<Cell><Data ss:Type="String">12*455*3030</Data></Cell>
<Cell><Data ss:Type="String">мм</Data></Cell>
<Cell><Data ss:Type="String">камень</Data></Cell>
<Cell><Data ss:Type="String">вертикальный</Data></Cell>
<Cell><Data ss:Type="String">Класс НГ</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">К каждой панели идут углы, герметик, и краска в цвет панели.</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<VerticalResolution>0</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>5</ActiveRow>
<ActiveCol>1</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>

alcoSHoLiK 12.07.2007 18:04

Re: Xml парсер
 
В Майкрософт умеют облегчить жизнь) Попробывал TinyXML, он тоже не читает файл. Надо еще попробывать MSXML, может быстрее будет его заврапить.

listores 27.11.2007 16:13

Re: Xml парсер
 
Библиотека глючит на комментариях, если они не в одну строку.
Я, правда не знаю, можно-ли так делать по стандарту... :)

Damp 06.12.2007 15:16

Re: Xml парсер
 
А я чего-то пока не совсем догнал, какие преимущества дает этот формат? Ну всмысле как он облегчает жизнь в блице?

dimanche13 06.12.2007 15:37

Re: Xml парсер
 
этот формат дает "читабельное" представление о данных, что используются в программе. Ведь хорошо когда есть только ехе файл проекта, и заменой нескольких констант в XML файле можно поменять работу приложения, без перекомпилирования исходника. К тому же, то что ты сохранил в xML другой человек может припарсить к своему коду, например "редактор карт". И самое главное- это стандартизированный формат. Есть множество программ для чтения/редактирования данных. перейдя с Блитца на С++ или pascal ты можешь легко присабачить свои старые xml файлы к новому проекту.

Damp 06.12.2007 15:41

Re: Xml парсер
 
Насчет читабельности я бы поспорил :) если смотреть его блокнотом.

dimanche13 06.12.2007 15:50

Re: Xml парсер
 
я редактирую блокнотом ... и не парюсь. Для и редактировать всё не надо. Достаточно ПОДредактировать,то что нужно. А где ЭТО лежит- легко найти благодаря как раз читабельности. Конечно если у тебя Node-ы будут называться типа ааа или бхтп или еще как-нить по тарабарски, то не найдешь, то что надо, ни в XML ни в другом формате. Я не убеждаю тебя, что надо прям все бросить и пользоваться только им. Как раз наоборот, пробуй ищи изобретай форматы. Я вот попробовав множество форматов выбрал xml - меня он полностью устраивает, потому как он удовлетворяет всем моим требованиям.

moka 06.12.2007 16:07

Re: Xml парсер
 
Damp, читабельность для меня ок, потому-что он имеет древовидную систему хранения информации, и использую его для древовидной системы, и того получаеться очень удобно, всё звисит от того что тебе нужно в нём хранить. :)
+ очень просто записывать и считывать.


Часовой пояс GMT +4, время: 07:46.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot