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

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → 如何指定一个节点作for循环, 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3033 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 如何指定一个节点作for循环, 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     gino 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:7
      积分:85
      门派:XML.ORG.CN
      注册:2005/6/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gino发送一个短消息 把gino加入好友 查看gino的个人资料 搜索gino在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gino的博客楼主
    发贴心情 如何指定一个节点作for循环,

    Dear sir,
    i have a xml file like below

    xml file:
    <?xml version="1.0" encoding="UTF-8"?>
    <COMPANY>
        <Department name='CPU'>
            <FAX>
                    <FaxNo>28222222</FaxNo>
                    <FaxNo>28333333</FaxNo>
            </FAX>
            <Session name='PDT'>
            <FAX>
     <FaxNo>28255555</FaxNo>
            </FAX>
            <StaffList>
     <Staff>
           <StaffName>Rcok Hsu</StaffName>
           <PhoneNo>272</PhoneNo>
     </Staff>
     <Staff>
             <StaffName>Jerry</StaffName>
           <PhoneNo>103</PhoneNo>
     </Staff>
            </StaffList>
         </Session>
         <Session name='PDT'>
             <FAX>
             <FaxNo>28258287</FaxNo>
             </FAX>
     <StaffList>
          <Staff>
              <StaffName>Harry</StaffName>
              <PhoneNo>277</PhoneNo>
          </Staff>
          <Staff>
              <StaffName>Ricky</StaffName>
              <PhoneNo>375</PhoneNo>
          </Staff>
     </StaffList>
           </Session>
      </Department>
    </COMPANY>

    my asp is below
    <HTML>
    <HEAD>
    <TITLE>ASP與XML搜尋引擎</TITLE>
    </HEAD>
    <%
    ' 搜尋XML文件的節點
    Function SearchResult(strSearch)
       Dim objxmlDom, ObjRootNode, DptElement, strSessName, strDptname
       Dim DptList,  FaxList, SessionList, strMessage
       Dim DptListAttrib ,DptElementAttrib
       Dim strFaxNo


       strMessage = ""
       ' 載入XML文件
       Set objxmlDom = Server.CreateObject("Microsoft.XMLDOM")
       'objxmlDom.validateOnParse = true
       objxmlDom.Load(Server.MapPath("PhoneBook2.xml"))
       Set objRootNode = objxmlDom.documentElement
       ' 搜尋所有的keywords節點
       If objRootNode.hasChildNodes() Then
          For Each DptList in objRootNode.childNodes 'AT COMPANY LEVEL INTO EACH DEPARTMENT
             DptListAttrib = DptList.attributes.getNamedItem("name").text '---get DEPARTMENT ATTRIBUTE name
             If InStr(DptListAttrib,strSearch) Then '如果搜尋的字符合 DEPARTMENT那就要顯示整個DEPARTMENT DATA
                
                For Each DptElement in DptList.childNodes  'AT department LEVEL FOR COMPANY CHILD '---FAX, SESSION
                'FAX PART
                IF DptList.selectSingleNode("FAX").hasChildNodes() Then
                   strMessage = strMessage & DptElement.childNodes.length
                   For i=0 to DptElement.childNodes.length
                   strMessage = strMessage & DptList.firstChild.nodeName & " </BR>"
                   strMessage = strMessage & "oo"
                   IF FaxList.nodeName="FaxNo" then
                       strFaxNo = DptElement.selectSingleNode("FaxNo").text
                       strMessage = strMessage & strFaxNo
                   End if    
                   Next
                End If
                Next
             End If
          Next
       End If
       Set objxmlDom = Nothing
       SearchResult = strMessage
    End Function  
    %>
    <BODY>
    <H2>分機搜尋引擎</H2><HR>
    <%
    Dim strResult
    ' 取得搜尋的字串
    strSearch = UCase(Request.QueryString("strSearch"))

    //   strSearch = Request.Form("strSearch")

    If strSearch <> "" Then
       strResult = SearchResult(strSearch)
    End If
    %>
    <FORM action="PhoneBook.asp" method="POST">
      輸入搜尋字串 : <INPUT type="TEXT" name="strSearch" value=<%=strSearch%>>
      <INPUT type="SUBMIT" value="開始搜尋">
    </FORM>
    <HR>
    <% If strResult <> "" Then %>
          <B>搜尋的結果 .... </B><BR><BR>
          <DIV><%=strResult%></DIV>
    <% Else
       If strSearch <> "" Then %>
          <B>沒有任何符合的網址<%=strResult%></B><BR>
    <% End If
    End If %>
    </BODY>
    </HTML>

    当我搜寻department的时候,若名字一样, 我就会进入此department然后将此部分的数据显示, 可是当我要去抓取FAX的时候,
                IF DptList.selectSingleNode("FAX").hasChildNodes() Then
                   strMessage = strMessage & DptElement.childNodes.length
                   For i=0 to DptElement.childNodes.length
    我却无法用循环显示DEPARTMENT中的FAX NO….他竟然还会回圈到SESSION
    请问各位要怎么指定回圈某一个节点呢???

    谢谢各位指导啊

    This picture is my structure.....



    此主题相关图片如下:
    按此在新窗口浏览图片

    [此贴子已经被作者于2006-6-29 11:35:46编辑过]

       收藏   分享  
    顶(0)
      




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

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

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