新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → [求助]一个关于DOM查询的问题(急用,恳请帮助。) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2053 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]一个关于DOM查询的问题(急用,恳请帮助。) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lxllj 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:53
      门派:XML.ORG.CN
      注册:2004/5/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lxllj发送一个短消息 把lxllj加入好友 查看lxllj的个人资料 搜索lxllj在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lxllj的博客楼主
    发贴心情 [求助]一个关于DOM查询的问题(急用,恳请帮助。)

    本人作了一个XML程序,进行诗歌查询,不能运行。恳请各位大侠帮帮忙。

    共有三个文件:
    Bookstable.xsl
    <DIV xmlns:xsl="http://www.w3.org/TR/WD-xsl">
      <TABLE style="table-layout:fixed" BORDER="2" CELLSPACING="2">
        <col width="300"/>
        <col width="300"/>
        <col width="100"/>
        <THEAD>
          <TH>TITLE</TH>
          <TH>AUTHOR</TH>
          <TH>PRICE</TH>
        </THEAD>
        <xsl:for-each select="book">
          <TR>
            <TD>
              <SPAN>
                <xsl:value-of select="title"/>
              </SPAN>
            </TD>
            <TD>
              <SPAN>
                <xsl:value-of select="author"/>
              </SPAN>
            </TD>
            <TD>
              <SPAN>
                <xsl:value-of select="price"/>
              </SPAN>
            </TD>
          </TR>
        </xsl:for-each>
      </TABLE>
    </DIV>

    bookstore.xml
    <?xml version="1.0" encoding="gb2312"?>
    <?xml-stylesheet type="text/xsl"href="bookstable.xsl"?>
    <books>
      <book>
        <title>我愿意是急流</title>
        <author>裴多非</author>
        <price>9.00</price>
      </book>
      <book>
        <title>我需要你,只需要你</title>
        <author>泰戈尔</author>
        <price>12.00</price>
      </book>
      <book>
        <title>如果我今生无份遇到你</title>
        <author>泰戈尔</author>
        <price>8.00</price>
      </book>
      <book>
        <title>如果在爱只有痛苦</title>
        <author>泰戈尔</author>
        <price>8.00</price>
      </book>
      <book>
        <title>致爱情</title>
        <author>普拉达</author>
        <price>13.00</price>
      </book>
      <book>
        <title>致燕妮</title>
        <author>马克思</author>
        <price>12.00</price>
      </book>
      <book>
        <title>歌手的爱情-致燕妮</title>
        <author>马克思</author>
        <price>15.00</price>
      </book>
      <book>
        <title>思念</title>
        <author>马克思</author>
        <price>29.00</price>
      </book>
      <book>
        <title>致凯恩</title>
        <author>岛崎藤村</author>
        <price>15.00</price>
      </book>
      <book>
        <title>我曾经爱过你</title>
        <author>普希金</author>
        <price>15.00</price>
      </book>
      <book>
        <title>欲把心儿夹在隹笺中间</title>
        <author>鲁达基</author>
        <price>15.00</price>
      </book>
      <book>
        <title>你的离别</title>
        <author>鲁达基</author>
        <price>15.00</price>
      </book>
    </books>

    爱情诗歌查询.html
    <HTML>
    <HEAD>
    <TITLE>爱情诗歌选</TITLE>
    </HEAD>
    <FONT FACE="verdana,arial,helvetica"SIZE=1>
    </FONT><hr>
    <BODY onload="WaitToFillBoxes()">
    <P align="center" style="FONT-SIZE:24pt;FONT-WEIGHT:bold">爱情诗歌查询</P>
    <XML id=selBooks>
    </XML>

    <XML id=bookSS SRC="bookstable.xsl">
    </XML>
    <DIV ID=selectDIVs align="center">
    <SPAN style="FONT-WEIGHT:bold">按诗歌名称查询:</SPAN><SPAN ID=choices2></SPAN>
    <BR>
    <SPAN style="FONT-WEIGHT:bold">按作者查询:</SPAN><SPAN ID=choices3></SPAN>
    </DIV>
    <SCRIPT>
    var retNodes;
    var patternString;
    function fillBoxes(){
      makeBox("title","titles",1);
      makeBox("author","authors",4);
      }

    function makeBox(elementName,boxName,divIndex){
      var pattern="//"+elementName;

    var selNodes=booksDoc.documentElement selectNodes(pattern);

    var holderNode="booksDoc.createNode(1,"holder","");

    holderNode.insertBefore(selNodes.item(0).cloneNode(true),null);
      for(var j=1;j<selNodes.length;j++){
        counter=0;
        for(var k=0;k<holderNode.childNodes.length;k++){
          if(selNodes.item(j).text==holderNode.childNodes.item(k).text||selNodes.item(j).text==""){
            counter=1;  
            break;
            }
          else counter=0;
          }
        if(counter==0){
          holderNode.insertBefore(selNodes.item(j).cloneNode(true),null);
          }
        }
      buildSelect(boxName,holderNode.childNodes,divIndex);
      }

    function buildSelect(boxName,selNodes,divIndex){
      var str="<SELECT NAME='"+boxName+"'SIZE=1><OPTION VALUE="SELECTED>ALL";
        for<var i=0;i<selNodes.length;i++){
          str+="<OPTION VALUE='"+selNodes.item(i).text+"'>"+selNodes.item(i).text;
          }
        str+="</SELECT>";

        selectDIVs.children.item(divIndex).innerHTML=str;
      }

    function getSamples(){

      var patternString="//book[";
      if(titles.value !="")
      patternString+="title='"+titles.value+"'";
      if(authors.value!=""){
        if(titles.value !="")
          patternString+="$and$author='"+authors.value+"'";
        else patternString+="author='"+authors.value+"'";
        }
      patternString+="]"
      if(patternString=="//book[]")
        patternString="//book";

      alert(patternString);
      var selectedNodes=booksDoc.selectNodes(patternString);
      var bookHolder=booksDoc.createNode(1,"books","");
      for(var n=0;n<selectedNodes.length;n++)
        bookHolder.inserBefore(selectedNodes.item(n).cloneNode(true),null);

      insertTable.innerHTML=bookHolder.transformNode(bookSS.documentElement);
      }

    function getState(){
      if(booksDoc.readyState=="complete")
        fillBoxes();
      }

    function WaitToFillBoxes(){
      window.status="waiting...";
      if(booksDoc.readyState!="complete")
        window.setTimeout("WaitToFillBoxes()",100);
      if(bookSS.readyState!="complete")
        window.setTimeout("WaitToFillBoxes()",100);
      windos.status="OK!!!";
      fillBoxes();
    }
    </SCRIPT>

    <XML ID="booksDoc"SRC="bookStore.xml"></XML>
    <BR>
    <DIV align="center">
    <INPUT TYPE=button NAME="Find Books" VALUE="诗歌查询"onclick="getSamples()">
    </DIV>
    <BR>
    <HR>

    <DIV id="insertTable"></DIV>
    </BODY>
    </HTML>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/5/23 15:53:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/1 15:15:08

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms