<fpdl:StartNode Id="Goods_Deliver_Process.START_NODE" Name="START_NODE" DisplayName="">
<fpdl:ExtendedAttributes>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.height" Value="20"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.width" Value="20"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.x" Value="11"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.y" Value="117"/>
</fpdl:ExtendedAttributes>
</fpdl:StartNode>
fpdl是xml的命名空间,我如何通过使用actionscript来操作xml的元素。我尝试使用example。[“fpdl:ExtendedAttribute”]来访问元素,但它不起作用。< / p>
感谢。
答案 0 :(得分:0)
在ActionScript中使用E4X访问XML并使用命名空间起初有点棘手。这是一个快速的解决方案,可以帮助你。
http://www.cafesilencio.net/blog/accessing-xml-with-namespaces-in-as3-flex-air
答案 1 :(得分:0)
您可以使用Namespace
实例和范围解析运算符::
。这是一个例子:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var xml:XML =
<root xmlns:ns="http://www.namespace.com/ns" >
<ns:parent value="parent">
<ns:child>child</ns:child>
</ns:parent>
</root>;
var ns:Namespace = new Namespace("http://www.namespace.com/ns");
trace(xml.ns::parent.@value); // output: parent
trace(xml.ns::parent.ns::child); // output: child
}// end function
}// end class
}// end package
答案 2 :(得分:0)
这是一个更完整的AS3 XML命名空间手册。
var data:XML = <fpdl:StartNode Id="Goods_Deliver_Process.START_NODE" Name="START_NODE" DisplayName="" xmlns:fpdl="http://google.com">
<fpdl:ExtendedAttributes>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.height" Value="20"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.width" Value="20"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.x" Value="11"/>
<fpdl:ExtendedAttribute Name="FIRE_FLOW.bounds.y" Value="117"/>
</fpdl:ExtendedAttributes>
</fpdl:StartNode>;
// define namespace if you know its URL
var ns:Namespace = new Namespace("http://google.com");
trace(data.ns::ExtendedAttributes.length());
// get namespace from document
ns = data.namespace("fpdl");
trace(data.ns::ExtendedAttributes.length());
// get default namespace from document
ns = data.namespace();
trace(data.ns::ExtendedAttributes.length());
// set default namespace to use
default xml namespace = ns;
trace(data.ExtendedAttributes.ExtendedAttribute.length()); // see, no ns:: stuff
就个人而言,我发现默认的xml namespace = ns; 非常难看。