2006/12/08 | flash-xml基础
类别(flash As) | 评论(0) | 阅读(332) | 发表于 00:47
属性   

说明   

   

XML.contentType   

表示传输到服务器的 MIME 类型。   

   

XML.docTypeDecl   

设置并返回关于 XML 文档的 DOCTYPE 声明的信息。   

   

XML.firstChild   

引用指定节点列表中的第一个子级。   

   

XML.ignoreWhite   

当设置为 true 时,在分析过程中,将放弃仅包含空白的文本节点。   

XML.lastChild   

引用指定节点列表中的最后一个子级。   

   

XML.load   

检查指定的 XML 对象是否已加载。   

   

XML.nextSibling   

引用父节点的子级列表中的下一个同级。   

   

XML.nodeName   

返回 XML 元素的标签名。   

   

XML.nodeType   

返回指定节点的类型(XML 元素或文本节点)。   

   

XML.nodevalue   

如果指定节点为文本节点,则返回该节点的文本。   

   

XML.parentNode   

引用指定节点的父节点。   

   

XML.previousSibling   

引用父节点的子级列表中的前一个同级。   

   

XML.status   

返回一个指示 XML 文档分析操作成功或失败的数字状态代码。   

   

XML.xmlDecl   

设置并返回关于 XML 文档的文档声明的信息。   

   

如何获取符合某条件值的节点呢???[b]   

   

学习笔记-----------------------------------------------------------



flash文件-------------------------------------------------





System.useCodepage = true;

var xmlTest = new XML();

xmlTest.ignoreWhite = true;

xmlTest.load("xmltest.xml";);

xmlTest.onLoad = function() {

  var xmlvalue = xmlTest.firstChild.childNodes;

  //引用指定节点列表中的一级节点<data>

  //trace(xmlvalue.length);

  for (i in xmlvalue) {

    trace(xmlvalue);

    //将xml中所有是一级节点的内容列出来

    trace("--------";);

    var dataname = xmlvalue[i].childNodes[0].firstChild.nodevalue;

    //dataname=XML中所有一级节点的第一节点的值<testName>

    var dataurl = xmlvalue[i].childNodes[1].firstChild.nodevalue;

    //dataurl=XML中所有第一子级的第二节点的值<testUrl>

    var datanull = xmlvalue[i].childNodes[2].firstChild.nodevalue;

    //datanull输出值为undefined,因为xml文件里只有两级节点,没有第三级

    trace(dataname+"+"+dataurl+"+"+datanull);

  }



};





flash文件-------------------------------------------------







xml文件---------------------------------------------------



<?xml version="1.0" encodeing="UTF-8"?>

<thisData>

  <data><testName>name1</testName><testUrl>URL1</testUrl></data>

  <data><testName>name2</testName><testUrl>URL2</testUrl></data>

</thisData>



xml文件---------------------------------------------------

   

学习笔记-----------------------------------------------------------   







   

有代码如下:我再注释了两句:   

oldC123"";   

// 需要替换的标签   

newC1234567890"";   

// 修改后的标签   

function change(oldXML, oldContent, newContent) {   

// 定义替换函数   

tem = oldXML.toString();   

// 将oldXML转换成字符;   

temp = tem.indexOf(oldContent, 0);   

// 搜索子字符串oldContent在tem字符串里的位置,注意(第一位是0);   

return new XML(tem.substring(0, temp)+newContent+tem.substring(temp+oldContent.length, tem.length));   

// 拆断串,替换进新内容;   

}   

myxml = change(myxml, oldContent, newCOntent);   

// 执行替换函数   

   

请关注:temp = tem.indexOf(oldContent, 0);这句。   

这样的做法:如果value="123"是唯一的那么就替换了,可是如果还有一个的话,只替换了第一个。   

indexOf(oldContent, 0)函数只定位到第一个oldContent的位置。
[/i][/i][/i]
[/b]

















原地址:http://bbs.blueidea.com/thread-872670-1-1.html


FLASH如何调用XML数据:
建立XML对象:[size=12px][i]复制内容到剪贴板
代码:var myXML = new XML();[/size]
引用XML文件:[size=12px]复制内容到剪贴板代码:myXML.load("data.xml");[/size]
忽略空格:[size=12px]复制内容到剪贴板代码:myXML.ignoreWhite = true;//默认的为false[/size]
处理XML对象的函数:[size=12px]复制内容到剪贴板代码:myXML.onLoad = function(success)
{
    statements;
}[/size]
data.XML文件的内容:[size=12px]复制内容到剪贴板代码:<data1 name="imagebear">
    <data2 name="mariger">
        xiaoshandong
    </data2>
    <data3 name="mariger3">
        xiaoshandong3
    </data3>
</data1>[/size]
myXML.childNodes[0]将返回:[size=12px]复制内容到剪贴板代码:<data1 name="imagebear">
    <data2 name="mariger">
        xiaoshandong
    </data2>
    <data3 name="mariger3">
        xiaoshandong3
    </data3>
</data1>[/size]
myXML.childNodes[0].nodeName将返回:[size=12px]复制内容到剪贴板代码:data1[/size]
myXML.childNodes[0].childNodes[0].name将返回:[size=12px]复制内容到剪贴板代码:imagebear[/size]
myXML.childNodes[0].childNodes[0]将返回:[size=12px]复制内容到剪贴板代码:<data2 name="mariger">
        xiaoshandong
    </data2>[/size]
myXML.childNodes[0].childNodes[0].nodeName将返回:[size=12px]复制内容到剪贴板代码:data2[/size]
myXML.childNodes[0].childNodes[1].attributes.name将返回:[size=12px]复制内容到剪贴板代码:mariger3[/size]
myXML.childNodes[0].childNodes[0].childNodes[0].nodevalue将返回:[size=12px]复制内容到剪贴板代码:xiaoshandong[/size]
=====================================[size=12px]复制内容到剪贴板代码:var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);将输出data2
myName = myName.nextSibling;
trace(myName.nodeName);将输出data3[/size]
childNodes[0]等价于firstChild
[/i]





[size=12px]var myXML = new XML();
myXML.load("data.xml");
myXML.ignoreWhite = true;
myXML.onLoad = function(success)
{
    if(success)
    {
        //myArray = myXML.childNodes[0];
        //trace(myArray.attributes.name);
        
        //trace(myXML.childNodes[0].childNodes[1].firstChild.nodevalue);
        //trace(myXML.firstChild);
        //trace(myXML.childNodes[0].nodeName);
        //trace(myXML.firstChild.attributes.name);
        //trace(myXML.childNodes[0].childNodes[1].nodeName);
        //trace(myXML.childNodes[0].childNodes[1].attributes.name);
        //trace(myXML.firstChild.firstChild);
        //trace(myXML.firstChild.firstChild.nodeName);
        //trace(myXML.firstChild.firstChild.attributes.name);
        //trace(myXML.childNodes[0].childNodes[0].childNodes[0].nodevalue);
        var myName = myXML.firstChild.firstChild;
        trace(myName.nodeName);
        myName = myName.nextSibling;
        trace(myName.nodeName);
    }
}[/size]

0

评论Comments

日志分类
首页[193]
flash As[107]
有的没的[59]
数码照片[4]
自由世界[19]
blender[4]