Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 31.01.2003 10:55
Как лучше вытаскивать данные из XML файла в БД? Требуется вытаскивать данные из различных элементов документа и вставлять их в разные поля. Все узлы, кроме одного не могут иметь вложенных элементов, а тот который имеет вложенные элементы, точнее его PCDATA и все дерево элементов, должны быть засунуты без изменений в поле типа text.$xml_src[^xdoc::create{...}] ^xml_src.selectString[string(pcdataElement)]но вот с элементным содержанием сложнее, - я не нашел как его передавать с помощью DOM в неизменном виде, поэтому я решил его передавать с помощью XSLT преобразования применяя специальную таблицу, которая находит требуемый элемент и просто с помощью директив copy-of передает его содержание без изменения:
$styleSheet[^xdoc::load[path_to_special_xsl_stylesheet]] $transformedDoc[^xml_src.transform[$styleSheet]] $document[^transformedDoc.string[$.method[xml]]]Таблица выглядит например так:
... <xsl:template match="treeElement"> <xsl:copy-of select="*"/> </xsl:template> <xsl:template match="pcdataElement"/> ...Вроде все работает, но мне это кажется очень некрасиво сделанным.