|
|
|||||
XML и русский со спецсимволами
Как можно избавиться от спецсимволов \r\n\tСлово\r\n
Исходный XML (если смотреть через Adobe GoLive, а так одни крокозябры): <?xml version="1.0" encoding="utf-8"?> <sTitleName> Биология </sTitleName> <sMainName>Животное <sSubName> Крокодил </sSubName> <sSubName> Слон </sSubName> </sMainName> <xml/> XMLNode.prototype.traverse = function (tabbing) { if (tabbing == undefined) tabbing=""; var nName = this.nodeName; if (nName == null) nName = "doc"; for (var i=0; i<this.childNodes.length; i++) { var child = this.childNodes[i]; // проверим, является ли этот узел текстовым if (child.nodeType == 3) { // trace ("child.nodeValue="+child.nodeValue.slice(2, -2)); trace (tabbing+" "+nName+": "+child.nodeValue); } else { trace (tabbing+nName); // рекурсивный вызов child.traverse(tabbing+" "); } } } XMLNode.prototype.removeWhite = function () { var cNodes = this.childNodes.length; for (var i=0; i<cNodes; i++) { var child = this.child.Nodes[i]; if (child.nodeType == 3) { var isEmpty = true; for (var j=0; j<child.nodeValue.length; j++) { if (child.nodeValue.charCodeAt(j)>32) { isEmpty = false; break; } } if (isEmpty) { child.removeNode(); cNode--; i--; } } else { child.removeWhite(); } } } myXML = new XML (); myXML.load("content_new.xml"); myXML.ignoreWhite = true; // присваивание ignoreWhite значения true!! myXML.onLoad = function (success) { if (success) { this.removeWhite(); this.traverse(); } } doc sTitleName: Биология doc sMainName Животное sSubName: Крокодил sMainName Животное sSubName: Слон doc Ну и потом дружно все внести в массив, тестовые переменные должны быть без \r\n\t! Впервые столкнулся с ХМЛ, и такая проблема, слайс не помогает.... Помогите решить эту задачу... Последний раз редактировалось GladiatoR_Alex; 14.11.2007 в 15:59. |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Для оформления своего кода, надо использовать теги [code][/code].
А почему бы вам сразу xml не делать без этих символов? Это ведь экономия трафика. Один из вариантов: Убиваем совсем XMLNode.prototype.removeWhite и пишем так myXML = new XML (); myXML.load ("content_new.xml"); myXML.ignoreWhite = true; // присваивание ignoreWhite значения true!! myXML.onLoad = function (success) { if (success) { //this.removeWhite (); this = new XML (this.toString ().split ("\r").join ("").split ("\n").join ("").split ("\t").join ("")); this.traverse (); } }; Последний раз редактировалось iNils; 14.11.2007 в 16:08. |
|
|||||
Но как их сделать без этих символов? Этот ХМЛ генерирует Adobe GoLive...
И можно пример по использованию плииз.... |
|
|||||
Всё спасибо почти все что необходимо заработало, всё остальное я сделаю
|
Часовой пояс GMT +4, время: 04:00. |
|
« Предыдущая тема | Следующая тема » |
|
|