LINUX.ORG.RU

DSL для парсинга XML


0

0

Преамбула: в xml разбираюсь слабо.

такая задача: есть описание чего-то в формате xml.  Из этого описания
нужно извлечь вектор переменных.  Набор переменных фиксирован.

Переменные бывают двух типов: float и discrete.

Как правило извлечение переменной -- это отыскание значения некого
атрибута в каком-то теге.

Например, отсюда:

<shim>
   <hardware>
      <item type ='Processor' id='0'>
         <attribute name='Name' value='T5600'/>
         <attribute name='CPUID' value='000006f2'/>
         <attribute name='Manufacturer' value='Intel'/>
         <attribute name='BusSpeed' value='166'/>
         <attribute name='MaxFrequency' value='1833'/>

извлекается переменная CPU_CLOCK равная 1833

Бывают переменные которые сводятся к подсчету количества каких-то
тэгов.  (Например -- количество процессоров).

Хочется написать описание всех этих переменных и способа их извлечения
на каком-то подходящем для этого дела языке.  И потом иметь, например, 
шелл скрипт который его распарсит и сгенерирует С/С++ код с коллбэками
для libexpat.

Пока получается что-то типа такого:
FLOAT_VAL_EXTRACTOR  CPU_CLOCK                   MATCH="shim"/MATCH="hardware"/\
MATCH="item":"type","Processor"/MATCH="attribute":"name","MaxFrequency"-VALUE="
\
value"
(это строка описывающая как извлечь CPU_CLOCK)

Хотелось бы узнать нет ли какого-то общепринятого языка для такого
типа описания? И нет ли готовых кодогенераторов?
★★★★★

xpath тебе нужен, барин. А еще на CDuce посмотри, просто для общего развития.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.