PDA

Просмотр полной версии : ХМL таблица с HTML (простой вопрос)


Denis Davidov
25.05.2008, 20:50
Здрасьте все!

Есть такая таблица. Я в ХМЛ не разбираюсь, редактирую и использую по аналогии...
Нубский вопрос: Как в какуюнибудь ноду добавить HTML текст??

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<m>
<k name="Photo">
<k name="art">
<k name="Photo-painting (2007)" end="foto">
<k img="image/art/fotopaint/1.jpg" icon="icons/art/fotopaint/1.jpg"></k>
<k img="image/art/fotopaint/2.jpg" icon="icons/art/fotopaint/2.jpg"></k>
<k img="image/art/fotopaint/3.jpg" icon="icons/art/fotopaint/3.jpg"></k>
<k img="image/art/fotopaint/4.jpg" icon="icons/art/fotopaint/4.jpg"></k>
<k img="image/art/fotopaint/5.jpg" icon="icons/art/fotopaint/5.jpg"></k>
<k img="image/art/fotopaint/6.jpg" icon="icons/art/fotopaint/6.jpg"></k>
<k img="image/art/fotopaint/7.jpg" icon="icons/art/fotopaint/7.jpg"></k>
</k>
<k name="Krestovsky part (2005)" end="foto"></k>
<k name="Zero Gravity (2004)" end="foto"></k>
</k>
<k name="fashion" end="foto" htmlRU="">
<k img="image/fashion/1.jpg" icon="icons/fashion/1.jpg"></k>
<k img="image/fashion/2.jpg" icon="icons/fashion/2.jpg"></k>
<k img="image/fashion/3.jpg" icon="icons/fashion/3.jpg"></k>
<k img="image/fashion/4.jpg" icon="icons/fashion/4.jpg"></k>
<k img="image/fashion/5.jpg" icon="icons/fashion/5.jpg"></k>
<k img="image/fashion/6.jpg" icon="icons/fashion/6.jpg"></k>
<k img="image/fashion/7.jpg" icon="icons/fashion/7.jpg"></k>
<k img="image/fashion/8.jpg" icon="icons/fashion/8.jpg"></k>
<k img="image/fashion/9.jpg" icon="icons/fashion/9.jpg"></k>
</k>
<k name="portrets" end="foto"></k>
<k name="publications" end="foto"></k>
</k>
<k name = "Reels">
<k name="4friends" end="cine"></k>
</k>
<k name="Design">
<k name="still nothing here..." end="design"></k>
</k>
<k name = "About" end="about"></k>
<k name = "Contact" end="contact"></k>
</m>


Я пробовал так:
<k name="fashion" end="foto" htmlRU="<![CDATA[<font face='Times New Roman' size='25'>This is how you assign HTML text to a text field.</font><br>It's very useful.</br>]]>">
Но понятно что это не правильно.

Можно конечно переписать фаил в этом стиле:

<images>
<pic>
<image>pic_galery/inter/img001.jpg</image>
<caption>
<![CDATA[ююююю]]>
</caption>
</pic>
</images>

но предыдущий вариант мне как-то более удобен для редактирования...

Подскажите плиз, как это написать.
Спасибо

iNils
25.05.2008, 21:29
А тут и говорить не о чем.
Вот это
<k name="fashion" end="foto" htmlRU="<![CDATA[<font face='Times New Roman' size='25'>This is how you assign HTML text to a text field.</font><br>It's very useful.</br>]]>">
чистой воды фантазия и работать не будет.

Denis Davidov
25.05.2008, 23:20
Это я знаю! А как правильно?
или надо переписать таблицу в вышеуказанном мною виде?

iNils
25.05.2008, 23:40
Самый последний вариант правильный и единственный, по другому быть не может.

Denis Davidov
26.05.2008, 00:22
Понятно. В этом и заключался вопрос. Спасибо...

chingachgoog
26.05.2008, 16:13
Вообще, если очень хочется пользоваться атрибутами узла, то можно туда запихнуть html текст, но придется использовать сущности и потом немного мудрено вставлять в динамический текст.

Denis Davidov
26.05.2008, 18:16
Звучит для меня абсолютно таинственно :)) думаю проще переписать таблицу в другой вид и вставлять html текст как обычно...
з.ы. а можно ссылку на подобный пример если есть?

chingachgoog
26.05.2008, 19:55
а можно ссылку на подобный пример если есть?


например вместо <b> надо использовать &lt;b&gt;

Denis Davidov
26.05.2008, 21:37
понятно, спасибо. Геморно однако...
так как html текст буду вставлять далеко не во все ноды, думаю что создам
отдельно фаилы с html текстом, а в аттрибуты ноды буду писать ссылку на них...

Denis Davidov
31.05.2008, 18:18
Сейчас понял, что если переписывать этот XML в вид, кот. позволяет вставлять HTML, то придется заводить дополнительный атрибут: nodeMenu=false|true (ибо изначально это XML представлял собой меню во флешке). Просто наровне со структурой меню, также будут ноды, кот. просто несут информацию о конкретном разделе меню (описание, название...). XML понятно это не важно, для него все едино, это просто надо будет учитывать в обработчике XML...
Это нормальное явление, или я что-то слишком мудрю???
или как-то разделять их через nodeType? подскажите плиз, чтобы не изобретать велосипед...

Еще не уверен, можно ли к нодам обращаться по имени ChildNodes["nodeName"]или только по порядку ChildNodes[0]?
можно конечно прописать функцию кот. будет искать ноду с конкр. localName, но должно же это быть...

iNils
31.05.2008, 18:41
1. Можно опредялеть по имени нода. Сейчас у вас только <k/>, а можно назвать например <data/>

2. По имени нельзя, да и имена будут повторяться, у вас вон сколько "k". Можно через аттрибут id (уникальный на весь xml). Например
<node id="abcd" x="5">
<node id="xyz" x="88"/>
</node>
а добраться до него в as надо через объект xml
trace (xml.idMap['abcd']);
trace (xml.idMap['xyz']);

Denis Davidov
31.05.2008, 18:55
Спасибо за совет.
Т.е. в любом случае надо обрабатывать руками xml, будь то смотря на имя ноды (data|menuitem), ини на атрибут ноды...
насчет id, я бы его использовать здесь не стал, тогда придется потм менять когд во флеше, если где-то изменю уникальный id ноды, проще тогда написать функцию перебирающую ноды с поиском конкретного localName.

Просто пытаюсь понят/решить, как это лучше написать, чтобы в последствии как можно меньше менять код во флеше, а менять только сам xml...

iNils
31.05.2008, 19:04
Все дерево перебирать?:)
Я id строю по принципу файловой системы, то есть путей. Вместо c:\winnt\system32\ будет /winnt/system32/ и каждый вложенный нод повторяет родительский id + добавляет свой.
id очень подходит для того, чтобы организовать быструй доступ к заданному ноду.

Denis Davidov
31.05.2008, 20:35
кстати, интересный вариант, спасибо...
я начал писать для перебора только child'ов конкретной ноды. Так как среди них есть, скажем, 3 ноды - элемента меню и одна нода с именем "name"- имя текущего элемента меню...
Этот поиск только в обработке XML...
Мне, в принципе, поиск по всему дереву после обработки не нужен, хотя елси что буду делать через такой id...