⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用perl创建voicexml应用程序 - fanqiang_com.htm

📁 详细的讲述了XML相关知识
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0064)http://fanqiang.chinaunix.net/program/html/2002-01-29/2287.shtml -->
<HTML><HEAD><TITLE>使用Perl创建VoiceXML应用程序 - fanqiang.com</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
	FONT: 12pt 宋体
}
TH {
	FONT: 12pt 宋体
}
INPUT {
	FONT: 12pt 宋体
}
SELECT {
	FONT: 12pt 宋体
}
TEXTAREA {
	FONT: 12pt 宋体
}
SELECT {
	FONT: 12pt 宋体
}
checkbox {
	FONT: 12pt 宋体
}
A:link {
	COLOR: #e6a306; TEXT-DECORATION: underline
}
A:visited {
	COLOR: #e6a306; TEXT-DECORATION: underline
}
A:hover {
	COLOR: #ffff00; TEXT-DECORATION: underline
}
BODY {
	FONT-SIZE: 12pt; FONT-FAMILY: "宋体", "serif"
}
TD {
	FONT-SIZE: 12pt; FONT-FAMILY: "宋体", "serif"
}
P {
	FONT-SIZE: 9pt; LINE-HEIGHT: 150%
}
</STYLE>

<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY text=#ffffff bgColor=#000000 leftMargin=0 
background="使用Perl创建VoiceXML应用程序 - fanqiang_com.files/bline.gif" topMargin=5 
onload=setTailPosition() marginwidth="0" marginheight="5">
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
  <TBODY>
  <TR>
    <TD height=45>
      <P align=center><IMG alt="[ 永远的UNIX::UNIX技术资料的宝库 ]" 
      src="使用Perl创建VoiceXML应用程序 - fanqiang_com.files/title.gif"> </P></TD></TR>
  <TR>
  <TR>
    <TD vAlign=bottom align=left height=40><SMALL><A 
      href="http://fanqiang.chinaunix.net/">首页</A> &gt; 编程技术 &gt; <A 
      href="http://fanqiang.chinaunix.net/program/html/index.shtml">HTML/JS/XML</A> 
      &gt; 正文</SMALL></TD></TR>
  <TR>
    <TD width="100%" bgColor=#d09f0d colSpan=5 height=2><IMG height=1 
      src="使用Perl创建VoiceXML应用程序 - fanqiang_com.files/c.gif" 
  width=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
  <TBODY>
  <TR>
    <TD vAlign=top align=middle><BR>
      <TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
        <TBODY>
        <TR>
          <TH class=f24>
            <H1>使用Perl创建VoiceXML应用程序</H1></TH></TR>
        <TR>
          <TD align=middle height=20><FONT 
            color=#999999><SMALL>本文出自:http://www.computerworld.com.cn 作者: 刘彦青 
            (2002-01-29 20:54:06)</SMALL></FONT></TD></TR>
        <TR>
          <TD><BR>
            <SCRIPT type=text/javascript><!--
google_ad_client = "pub-0052768304011480";
google_alternate_color = "000000";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_channel ="5959447789";
google_color_border = "000000";
google_color_bg = "666666";
google_color_link = "FFFFFF";
google_color_url = "FF9900";
google_color_text = "CCCCCC";
//--></SCRIPT>

            <SCRIPT src="使用Perl创建VoiceXML应用程序 - fanqiang_com.files/show_ads.js" 
            type=text/javascript>
</SCRIPT>
          </TD></TR>
        <TR>
          <TD height=15></TD></TR>
        <TR>
          <TD class=l17><FONT class=f14 id=zoom><FONT color=#cccccc><!-- 正文begin --><!--HTML_BEGIN-->
            <TABLE width=728 align=center>
              <TBODY>
              <TR>
                <TD vAlign=top width=600>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><B>简介</B></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD 
                        class=a14>VoiceXML是一种用来创建可以通过电话访问的内容的基于XML的编程语言,这样的内容不仅仅是具有互联网访问功能的移动电话可以访问,普通的电话也照样可以访问这些内容。HTML使用图形用户界面访问网站的内容,而VoiceXML则通过语音界面访问内容,其中的语音和拨号盘代替了传统的显示器、键盘和鼠标。对VoiceXML及其工作原理进行详细的介绍不在本文的范围之内,有关这方面的知识请参与相关资料。</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><B>一个简单的例子</B></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD 
                        class=a14>为了说明通过电话访问现有的互联网内容是如何简单,我们将使用Perl建立一个简单的CGI脚本文件,获取一个包含CPAN最近上传内容的文件,然后将文件转换为VoiceXML,以便用户能够通过VoiceXML网关在电话上访问这些内容。</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>use strict;</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>use XML::XPath;</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>use LWP::UserAgent;</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>加载必要的模块后,在脚本程序的开始,我们创建新的HTTP::Request和 
                        LWP::UserAgent对象,然后调用LWP::UserAgent的simple_request方法为RSS文件请求远程服务器。</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>my $news_url = 
                        'http://search.cpan.org/recent.rdf';</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>my $request = HTTP::Request-&gt;new('GET', 
                        $news_url);</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>my $ua = 
                    LWP::UserAgent-&gt;new();</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>my $response = 
                        $ua-&gt;simple_request($request);</TD></TR></TBODY></TABLE>
                  <TABLE width=518>
                    <TBODY>
                    <TR>
                      <TD class=a14 width=510>发出请求后,我们将开始输出VoiceXML。首先创建vxml 
                        root元素和包含一个block元素的表格。在block元素中放入一个audio元素,告诉用户在RSS文件处理过程期间需要耐心地等待,然后用一个goto元素告诉VoiceXML浏览器跳到当前文档中标有headlines的小节。</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>print qq*</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><?xml version="1.0"?></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><VXML><SPAN 
                      lang=EN-US>&lt;vxml&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><BLOCK><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp; </SPAN>&lt;form 
                        id="greeting"&gt;</SPAN></TD></TR>
                    <TR>
                      <TD class=a14><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
                        </SPAN>&lt;block&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><AUDIO><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        </SPAN>&lt;audio&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>Please wait while I process the c pan news 
                        feed.</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></AUDIO><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        </SPAN>&lt;/audio&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14><GOTO next="#headlines" /><SPAN 
                        lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        </SPAN>&lt;goto 
                    next="#headlines"/&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></BLOCK><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
                        </SPAN>&lt;/block&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></FORM><SPAN lang=EN-US><SPAN 
                        style="mso-spacerun: yes">&nbsp; 
                        </SPAN>&lt;/form&gt;</SPAN></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>*;</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD 
                        class=a14>然后我们将对response对象进行测试,确保我们已经收到了远程的RSS文件。如果已经收到了远程文件,则创建一个新的XML::XPath实例,并将response对象的内容小节传送给它进行解析。如果在请求文件或在解析返回的内容时出现错误,则将出错的信息存储在$error中以供以后分析用。尽管封装对XML::XPath最初调用的eval块增加了一些系统开销,但在解析过程出现错误时,它能够使我们很“体面地”退出程序,如果没有它,解析出现错误将使脚本意外地结束。</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14>my ($error, $xp);</TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>
                      <TD class=a14></TD></TR></TBODY></TABLE>
                  <TABLE width="100%">
                    <TBODY>
                    <TR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -