Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавляются лишние неймспейсы в XML (http://www.flasher.ru/forum/showthread.php?t=193290)

Srednas 25.01.2013 10:49

Добавляются лишние неймспейсы в XML
 
Здравствуйте.

Понадобилось вытащить информацию из SVG-файлов.
Но после обработки и сборки в каждый элемент записывается «xmlns="http://www.w3.org/2000/svg».
Подскажите, как от этого избавиться?

Первоначальное SVG-изображение:
Код:

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Rect" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
        width="100px" height="100px" xml:space="preserve">
<path id="rect" fill="#FF0000" d="M75,75H25V25h50V75z"/>
</svg>

Загружаю, затем собираю в массив элементов, для дальнейшей обработки:

Код AS3:

                                _ns = new Namespace(svg.namespace());
                                default xml namespace = _ns;
 
                                pathes = svg.descendants("path");
 
                                for each (var path:XML in pathes){
 
                                                id = path.@id;
                                                fill = path.@fill;
                                                stroke = path.@stroke;
 
                                                _items[_items.length] = {id: id, fill: fill, stroke: stroke, path: path.toXMLString()};
//  после path.toXMLString() в каждый path добавляется неймспейс
                                }

После некоторых манипуляций получается измененное SVG-изображение (в данном примере практически нет изменений):
Код:

<svg version="1.1" width="100px" height="100px" xml:space="preserve" proportionality="0.75" xmlns="http://www.w3.org/2000/svg">
        <g id="rect" style="fill: #FF0000; stroke: #000000; stroke-width: 1;">
                <path d="M75,75H25V25h50V75z" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"/>
        </g>
</svg>


wvxvw 26.01.2013 13:44

как-то не совсем понятно... toXMLString() не может ничего поменять в XML. Я так понимаю, что это результат объявления пространства имен глобальным. А если его не делать глобальным?
Да, еще если я правильно понял, попробуйте хмл который получается врезультате normalize(). Не факт, что что-то изменится, но, по-ходу, это пространство имен там просто лишнее, так же?


Часовой пояс GMT +4, время: 19:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.