javascript, sql, xml
Всем доброго дня.
Имеется задача такого плана... есть база sql в одном из столбцов которой лежат данные типа xml и вида <response SPXML-FORM="x-local:response.xmd"> <label>some text</label> <custom_elems> <custom_elem> <name> a</name> <text>4</text> </custom_elems> <custom_elem> <name> b</name> <text>15</text> </custom_elem> </custom_elems> </response> и если подключиться к базе и получить данные из других столбцов легко, то как выковырять отсюда значения text в массив, я совсем не представляю. Буду крайне признателен за помощь |
Я бы на Вашем месте пересмотрел структуру БД.
Пока кроме функции eval() в php ничего на ум не лезет. |
Структуру БД к моему великому сожалению поменять не могу, ибо проект остался от прошлого разработчика и меня посадили его дорабатывать. И да, разобрать надо именно javascript'ом Т_Т
----------------------------------------------------------------------------- ок, делаю так xml=new ActiveXObject ("Microsoft.XMLDOM"); xml.async=false; xml.load(o1); o2=xml.getElementsByTagName("custom_elem"); вот до сюда работает нормально, но как только я пытаюсь сделать alert(o2[0]) мне пишет, что это не массив, а что тогда? О_о |
Javascript имеет нормальные возможности для работы с xml.
var str = '<response SPXML-FORM="x-local:response.xmd"><label>some text</label><custom_elems><custom_elem><name> a</name> <text>4</text></custom_elem><custom_elem><name> b</name> <text>15</text></custom_elem></custom_elems></response>'; var parser, xml; if (window.DOMParser) { parser = new DOMParser(); xml = parser.parseFromString(str, "text/xml"); } else { // IE xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(str); } var nodes = xml.getElementsByTagName('text'); var i, l = nodes.length, items = []; for (i = 0; i < l; i++) { items.push(nodes[i].childNodes[0].nodeValue); } alert(items.join()); |
премного благодарен, работает
|
Самый простой способ - XMLHttpRequest :D
|
Часовой пояс GMT +3, время: 09:08. |