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, время: 01:20. |