非常奇怪,对FLASH+XML感兴趣的来看一下:

chengrg 2003-08-23 09:55:16
"type1.xml"文件如下:
<?xml version="1.0" encoding="UTF8"?>
<STONE>
<MODEL>
<picUrl>1</picUrl>
<title>title1</title>
</MODEL>
<MODEL>
<picUrl>2</picUrl>
<title>title2</title>

</MODEL>
<MODEL>
<picUrl>3</picUrl>
<title>title3</title>
</MODEL>
<MODEL>
<picUrl>4</picUrl>
<title>title4</title>
</MODEL>
<MODEL>
<picUrl>5</picUrl>
<title>title5</title>
</MODEL>
</STONE>

在FLASH中一帧的代码为:
stop();
var typesXml = new XML();
typesXml.load("type1.xml");
typesXml.onLoad = readXml;
function readXml()
{
typesXml.ignoreWhite = true;
trace("typesXml.ignoreWhite:" add typesXml.ignoreWhite);
trace("typesXml.status:" add typesXml.status);
trace("typesXml.xmlDecl:" add typesXml.xmlDecl);
trace("typesXml.firstChild.status:" add typesXml.firstChild.status);
trace("typesXml.firstChild.nodeType:" add typesXml.firstChild.nodeType);
trace("typesXml.firstChild.nodeName:" add typesXml.firstChild.nodeName);
trace("typesXml.firstChild.nodeValue:" add typesXml.firstChild.nodeValue);
trace("start readXml");
//typesXml.ignoreWhite = ture;
var xmlFirstChild = typesXml.firstChild;
trace(xmlFirstChild.nodeName);
var n = xmlFirstChild.childNodes.length;
trace("xmlFirstChild.childNodes.length:" add xmlFirstChild.childNodes.length);
//n is the number of pic
for (var i = 0; i<n; i++)
{
trace("xmlFirstChild.childNodes[" add i add "].nodeName:" add xmlFirstChild.childNodes[i].nodeName);
var currentNode = xmlFirstChild.childNodes[i];
trace("xmlFirstChild.childNodes[" add i add "].childNodes[0].nodeName:" add xmlFirstChild.childNodes[i].childNodes[0].nodeName);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[0].nodeType:" add xmlFirstChild.childNodes[i].childNodes[0].nodeType);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[0].nodeValue:" add xmlFirstChild.childNodes[i].childNodes[0].nodeValue);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[0].childNodes[0].nodeName:" add xmlFirstChild.childNodes[i].childNodes[0].childNodes[0].nodoName);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[0].childNodes[0].nodoValue:" add xmlFirstChild.childNodes[i].childNodes[0].childNodes[0].nodoValue);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[1].nodeName:" add xmlFirstChild.childNodes[i].childNodes[1].nodeName);
trace("xmlFirstChild.childNodes[" add i add "].childNodes[1].nodeValue:" add xmlFirstChild.childNodes[i].childNodes[1].nodeValue);
}
}

运行后的结果:
typesXml.ignoreWhite:true
typesXml.status:0
typesXml.xmlDecl:<?xml version="1.0" encoding="UTF8"?>
typesXml.firstChild.status:
typesXml.firstChild.nodeType:3
typesXml.firstChild.nodeName:null
typesXml.firstChild.nodeValue:


start readXml
null
xmlFirstChild.childNodes.length:0


现在有个问题:既然typesXml.firstChild.nodeType为3,那么typesXml.firstChild.nodeValue就应该有值吧,怎么是一些空白呢?请高手指点!
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cer 2003-10-18
  • 打赏
  • 举报
回复
请问一下flash中是否可以用xsl格式化xml文档?象在IE中一样?
jszcy 2003-08-29
  • 打赏
  • 举报
回复
typesXml.ignoreWhite = true;
放的地方不对,不放在readXml里.应该就能发挥作用了
chengrg 2003-08-28
  • 打赏
  • 举报
回复
up!
chengrg 2003-08-24
  • 打赏
  • 举报
回复
这个问题我已经解决。不过我还有疑问:帮助中写到“如果 XML 对象为文本节点,则 nodeType 为 3,且 nodeValue 为该节点的文本”,那么“既然typesXml.firstChild.nodeType为3,那么typesXml.firstChild.nodeValue就应该有值吧”
;还有,<STONE>节点的nodeType应该是1呀,是不是ignoreWhite=true;没有发挥作用!
buddydeus 2003-08-24
  • 打赏
  • 举报
回复
坦白的说我不懂xml是来学的,up!
BoyPlusPlus 2003-08-23
  • 打赏
  • 举报
回复
很明显
typesXml.firstChild.nodeValue并没有值呀
这个节点应该只是到了<STONE>下
hadoop 中文文档index Prefetch chain 预处理链 Pre selector Precondition Enforcer Fetch chain 提取链 Fetch DNS Fetch Http Extractor chain抽取链 Extractor HTML Extractor JS Write Chain 写链 ARC Writer Processor Post process Chain Crawl State Updater Post selector 范围部件,边界部件,处理器链   预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。 提取链:主要是获得资源,进行DNS转换,填写请求和响应表单   抽取链:当提取完成时,抽取感兴趣的HTML,JavaScript,通常那里有新的也适合的URI,此时URI仅仅被发现,不会被评估   写链:存储爬行结果,返回内容和抽取特性,过滤完存储。   提交链:做最后的维护,例如,测试那些不在范围内的,提交给边界部件 1. Pre fetch Chain 预处理链。 1.1 precondition Enforcer: 预处理。Enforcer 处理。确定、提供捉取所需要的基本信息。 例如:查询、请求一个DNS,或者是 请求、分析一个robots.txt文件。--这些都是在进行下一步之前所要做的事情。 1.2 Pre selector :预选择器。查看爬虫的域,看是否这个URL已经被处理(捉取)过了。如果被捉取过了,那么就把这个URL的状态置为 OUT_OF_SCOPE (超出了域的范围),并且直接跳到 post processor(后处理),更新该爬虫的信息。 1.3 Quota Enforcer :限额处理。这是一个简单的配额处理器。检查主机、服务器、边界组 和现在的捉取URL已经超过了配额的话,阻塞正在处理的URL,并且该URL的状态设置为 S_BLOCKED_BY_QUOTA。 1.4 Runtime Limit Enforcer :持续时间限制处理。这是在爬虫程序中的时限控制处理器。 这个处理器是扩展和提高Heritrix 长时间运行能力所必不可少的一个类。设置允许的最大允许时间,如果对一个URL的处理超过了这个最大的时间,那么处理器可以停止或暂停这个URL的处理。 1.4.1 暂停工作-暂停爬虫。一个修改(增加)持续时间可以重新恢复爬虫的工作。如果试图恢复爬虫的运行,而不修改运行允许的持续时间的话,爬虫会再次被停止。 1.5 Runtime Limit Enforcer . Operation:状态变量枚举。包含处理状态的常量。暂停、停止、阻塞。 2. Fetch Chain 捉取处理链。 2.1 Fetch DNS :捉取DNS。处理器去分析 和处理以dns:开始的URL. 2.2 Fetch HTTP :捉取HTTP。使用了Apache 的 HttpClient类库。处理以http:开头的URL。 2.3 Fetch FTP : 捉取FTP。捉取FTP的目录和文档,远程的FTP服务器必须支持 NLIST 命令。现在大多数的FTP服务器支持。 2.4 Fetch Stats :捉取的主机、端口、或者是边检组的一个统计。 2.5 BDB Cookie Storage :缓存器。使用BDB嵌入数据库引擎实现的缓存器,存储容量大。 2.6 Default Server Cache :服务器默认缓存器。 2.7 Heritrix Http Method Retry Handler : http 方法重请求帮助类。 2.8 Heritrix Protocol Socket Factory : Hreitrix的标准协议端口工厂。 2.9 Heritrix SSL Protocol Socket Factory :heritrix的SSL 协议端口工厂。 2.10 Simple Cookie Storage : 简单缓存存储器。 3. Extractor Chain 链接提取处理链。 3.1 Extractor 处理捉取的URL链接,这个类提供错误帮助当分析文档内容的时候。当然可以用它的子类 ContentExtactor 来替代。 3.2 Extractor HTML 从HTML 内容里提取链接。 3.3 Extractor CSS 从 CSS 里面提取链接。 3.4 Extractor JS 从 JS 里面提取链接。 3.5 Extractor PDF 从 PDF里面提起链接。 3.6 Extractor SWF 从 Flash里面提取链接。 3.7 Extractor Universal 最后一个链接提取器,通过提取任何看起来像链接的。如果使用的话,那么一般把它放在链接提取链的最后一个。 3.8 Extractor URI 从URI 里面提取链接。如果该URI中含有其他链接的话。 3.9 Extractor XMLXML里面提取 链接。 3.10 Link Context 链接字典的内容。 4. Write Chain 写处理链。 4.1 ARC Writer Processor 这是一个把捉取到的结果进行写写的处理,存储为 ARC(网络档案文件格式)的文档。每个 Heritrix实例只有一个这样的些处理线程在运行。 4.2 Default Metadata Provider 一个合适爬虫元数据的标准集。 4.3 Mirror Writer Processor 镜像 写处理。把捉取到的结果以镜像的形式存储。 4.4 Writer Pool Processor 写处理池。这是一个虚拟的文件池处理的实现。是ARC Writer Processor的父类。 5. Post Process Chain 后处理链。 5.1 Crawl State Updater :爬虫状态更新程序。 这是在处理了一个URL后的一步,用来更新已经被处理的URL的信息。这些信息包括IP、robots等信息。 5.2 Frontier Scheduler :定制边界URL的查询调度表。增加想要的或者是链接到其他地的链接。 5.3 Links Scope r 链接范围。确定哪个链接在范围内。把链接转换成Crawl URL类型,然后去查看该Crawl URL是不是在范围内。 5.4 Low Disk Pause Processor 当系统的磁盘很少了的时候,暂停处理。 5.5 Supplementary Links Scope r 做完普通的处理后再追加一些补充的处理的类。 5. Frontier 边界,下一个URL决定器。 5.1 Adaptive Revisit Frontier 重新检索边界程序。这是一个重复访问指定URL的边界程序。等待时间是可以设置的。 5.2 Adaptive Revisit Host Queue 是Crawl URL的一个主要的队列,每个队列应该代表一个主机(虽然这不是必须的)。 5.3 Adaptive Revisit Queue List 管理着Adaptive Revisit Host Queue 组成的列表。 5.4 BDB Frontier BDB数据库边界。使用 Berkeley DB 来维护自己知道的主机。 5.5 BDB Multiple Work Queues 是一个用嵌入式数据库实现的。 5.6 BDB Work Queue 一个独立的,有着相同class Key的列表。 6. Toe Pool 线程池。 6.1 Toe Pool 是一个Toe Thread线程池。 6.2 Toe Thread 是一个线程。 7 Crawl Controller Implement 主控制程序。 该类集合了所有的类,它可以协调执行爬虫和提供高水平的界面给运行的爬虫。

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧