Разбор XML с узлами, содержащими подчеркивания - PullRequest
1 голос
/ 06 мая 2010

Как мне разобрать XML-документ, содержащий узлы, где есть подчеркивания?

<some_xml>
    <child_node>
        <child width_info="" height_info="" />
    </childnode>
</some_xml>

Я пробовал это:

for each (var item:XML in Environment._XMLData.some_xml.child_node.child){
    trace(child.@width_info);
}

Но, похоже, это не работает. Я также не могу изменить XML, потому что он от третьей стороны. Любая помощь будет отличной. Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 06 мая 2010

Проблема в том, что some_xml является вашим корневым узлом, поэтому вам не нужно его включать.

Это должно работать:

for each (var item:XML in Environment._XMLData.child_node.child){
    trace(item.@width_info);
}
0 голосов
/ 06 мая 2010

Следует помнить, что .NODE и .ATTRIBUTE - это ярлыки для .child ("NODE") и .attribute ("ATTRIBUTE") соответственно (согласно Обход XML-структур (с / с liveocs)

Так что я думаю, что что-то вроде следующего будет работать (код не проверен, но теория должна быть обоснованной).

for each (var item:XML in Environment._XMLData.child("child_node").child){
    trace(child.@width_info);
}

Обратите внимание, что если атрибут не определен, вы получите ошибку времени выполнения - вы можете предотвратить это, выполнив:

if(child.hasOwnProperty("width_info"))
    trace(child.@width_info);

или просто используйте атрибут

trace(child.attribute("width_info"));
...