Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› XML парсер для MASM |
Посл.ответ | Сообщение |
|
Создано: 01 октября 2011 00:47 · Личное сообщение · #1 Посоветуйте XML парсер для masm. Что нашел: Парсер на основе конечных автоматов (FInite State Machine) - очень понравился, но не парсит мой XML документ, т.к. в нем встречается селектор вида <sample selector/> а в состояниях такого не задано. Как отредактировать состояния машины я так и не вкурил, 2 часа потратил. Мощный XML парсер, написаный на асме, только почему то под ЯВУ. Не проблема, сконвертил заголовки, собрал либу, но... После разбора семплов и чтения доков стало ясно, что парсит он только по простым схемам (simple schema), как задать схему, для вариативного XML я так и не понял. Для функции ax_parse последним параметром можно указать реакцию на неизвестный токен, но даже при FALSE значении парсить функа отказывается. Например XML файл такого вида: <?xml version="1.0" encoding="windows-1251" ?> <Param1> <Param2>1</Param2> </Param1> <Main> <Main1>Hello</Main1> </Main> Вот как сказать парсеру в виде схемы, что коллекция Main присутствует всегда, а всё остальное может и не быть я так и не понял, может кто шарит в схемах? Ну а в идеале была бы библиотека, которая бы просто парсила токены, как библиотека от gabor, а решение, нужен элемент или нет, оставляла бы программисту. ----- Yann Tiersen best and do not fuck |
|
Создано: 01 октября 2011 14:12 · Личное сообщение · #2 |
|
Создано: 01 октября 2011 14:20 · Личное сообщение · #3 |
|
Создано: 01 октября 2011 15:00 · Личное сообщение · #4 |
|
Создано: 01 октября 2011 15:58 · Личное сообщение · #5 |
|
Создано: 01 октября 2011 17:02 · Личное сообщение · #6 |
|
Создано: 01 октября 2011 17:30 · Личное сообщение · #7 |
|
Создано: 01 октября 2011 17:50 · Личное сообщение · #8 Ага, но только для записи, а вот для чтения нихера нет. Поизвращался с получением имени первого нода: <Test>123</Test> Пытаемся получить имя "Test": getXmlNodeName, ADDR Buffer, ADDR TestXML В отладчике видно, что нод найден на позиции 1. Ищется закрывающийся нод, только почему то с самого начала, встречается открывающаяся скобка и - ошибка. Вот тебе и квест, получи имя нода. Либо я ничего не понял, либо это кривейшая библиотека по работе с XML. На создание XML файлов - да, она работает, а вот как с ее помощью читать... ----- Yann Tiersen best and do not fuck |
|
Создано: 02 октября 2011 14:28 · Личное сообщение · #9 как я понял, да, у него плохо развито чтение. getXmlNodeName buffer,node - выдает NodeName из строки node, содержащая полностью Node(заканчивающаяся нулем) значение в buffer getXmlNodeValue buffer,node - выдает Value из строки node, содержащая полностью Node(заканчивающаяся нулем) значение в buffer т.е. Node должен быть вида: Node db '<Test>123</Test>',0 поправил, у меня ошибки не дает. скомпилировал... добавил еще вызов для теста: getXmlNodeValue2, ADDR Buffer, ADDR XMLdoc, ADDR TestXML - считывает значение node с именем TestXML со содержимого файла xml, помещенного в память в буффер Buffer - сюда помещается значение XMLdoc - считанный xml файл TestXML - имя node, значение которого хотим считать. TestXML db 'Test',0 1597_02.10.2011_EXELAB.rU.tgz - rxl2.rar |
|
Создано: 02 октября 2011 17:11 · Поправил: PE_Kill · Личное сообщение · #10 Не, ну нафиг, это уже не серьезно. Адаптировал Asm Xml работает очень быстро, конвертирует xml в связный список классов, сам контролирует буферы, подробно описывает произошедшую ошибку и многое другое. А это так, какой то набор функций для поиска строк, да еще и недоделанный, хотя и версия вон какая. ----- Yann Tiersen best and do not fuck |
|
Создано: 11 октября 2011 15:32 · Личное сообщение · #11 |
|
Создано: 11 октября 2011 15:46 · Личное сообщение · #12 |
|
Создано: 11 октября 2011 19:00 · Личное сообщение · #13 |
eXeL@B —› Программирование —› XML парсер для MASM |