Форум 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=173236)

Srednas 27.12.2011 16:28

Поик нужных потомков в XML
 
Здравствуйте.

Нужно получить из SVG («подвид» XML) всех потомков с именем path.
Подскажите что я неправильно делаю, используя descendants

Делаю так:
Код AS3:

trace(dataXML.descendants("path")); // пустота

Но если имя не указывать т.е.
Код AS3:

trace(dataXML.descendants()); // выводятся все потомки, затем потомки потомков и т.д

То выводится вся XML'ка.

Почему не выводятся path'и?

crazyone 27.12.2011 16:31

По идее, все правильно вам возвращает, но toString() выдает пустую строку, т.к. у path нет текстовой ноды.
Попробуйте так:
Код AS3:

trace(dataXML.descendants("path").toXMLString());


Srednas 27.12.2011 16:43

Цитата:

Сообщение от crazyone (Сообщение 1053888)
По идее, все правильно вам возвращает, но toString() выдает пустую строку, т.к. у path нет текстовой ноды.
Попробуйте так:
Код AS3:

trace(dataXML.descendants("path").toXMLString());


Не помогло. Все так же выводит пустоту :(

crazyone 27.12.2011 16:49

Может у вас нет чайлдов path в вашем свг?

ChuwY 27.12.2011 16:53

Кажется, вы неправильно используете метод.
Киньте пример данных.

Srednas 27.12.2011 16:57

Пример:
Код:

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Moz" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="354.917px" height="570.722px" xml:space="preserve">
<g id="m">
        <g id="r">
                <path id="M2" fill="#DADADA" stroke="#009640" stroke-miterlimit="10" d="M93.792,375.606l-0.252-0.979l1.002-0.334 l2.75-2.75L93.792,375.606z" />
                <path id="M1" fill="#DADADA" stroke="#009640" stroke-miterlimit="10" d="M128.698,494.825l0.89,2.191l-7.796,2.776    l-11.75,3.875l-15.875,5.876l-7.729,3.896l-0.313-2.479l-1.146-1.728l-1.323-1.865l-2.328,0.817l-3.164-0.842l0.668-2.67L128.698,494.825z" />
</g>
</g>
</svg>


cleptoman 27.12.2011 17:01

неймспейсы поубирайте

Srednas 27.12.2011 17:06

Цитата:

Сообщение от cleptoman (Сообщение 1053901)
неймспейсы поубирайте

Какие неймспейсы?

cleptoman 27.12.2011 17:19

Код:

xmlns="http://www.w3.org/2000/svg"
Добавлено через 20 минут
либо:

Код AS3:

var ns:Namespace = new Namespace("http://www.w3.org/2000/svg");
var search:QName = new QName(ns,"path");
trace(dataXML.descendants(search));


a_[w] 28.12.2011 15:13

Код AS3:

var ns:Namespace = new Namespace(null, "http://www.w3.org/2000/svg");
trace(dataXML..ns::path.toXMLString());

или просто
Код AS3:

trace(dataXML..*::path.toXMLString());



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

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