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

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 在ASP中操纵xml的问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 9357 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 在ASP中操纵xml的问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     锋划雪月 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:49
      积分:127
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给锋划雪月发送一个短消息 把锋划雪月加入好友 查看锋划雪月的个人资料 搜索锋划雪月在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看锋划雪月的博客楼主
    发贴心情 在ASP中操纵xml的问题

    呵呵,好几天没来了。我正在做以前提到的那个动态调查问卷程序,但现在有个问题,我发现自己的xml文档结构设计的不太合理,在ASP中操纵起来有点复杂。文档如下:
    <?xml version="1.0" encoding="gb2312"?>
    <detail>
    <test>
      <question>
        <questionid>1</questionid>
        <qtype>single</qtype>
        <qname>你比较喜欢哪位女明星?</qname>
        <qpoint>10</qpoint>
        <itemlist>
          <itemid>1</itemid>
          <itemname>张曼玉</itemname>
          <itemid>2</itemid>
          <itemname>林青霞</itemname>
          <itemid>3</itemid>
          <itemname>张柏芝</itemname>
          <itemid>4</itemid>
          <itemname>钟郦缇</itemname>
          <itemid>5</itemid>
          <itemname></itemname>
        </itemlist>
      </question>
      <question>
         <questionid>2</questionid>
         <qtype>multi</qtype>
         <qname>你喜欢刘德华吗?</qname>
         <qpoint>10</qpoint>
         <itemlist>
           <itemid>1</itemid>
           <itemname>从没听说过</itemname>
           <itemid>2</itemid>
           <itemname>上高中时喜欢,现在感觉他已经老了</itemname>
           <itemid>3</itemid>
           <itemname>一直比较喜欢</itemname>
           <itemid>4</itemid>
           <itemname>收集了许多他的资料,是他的铁杆Fans</itemname>
           <itemid>5</itemid>
           <itemname>非常赞赏他的敬业精神</itemname>
         </itemlist>
      </question>
    </test>
    </detail>
    其中,questionid表示问题的编号,qtype表示问题的类型,如为single型即为单选,如为mutil即为多选,如为show即为文本描述。qname表示问题的内容,qpoint为问题的权值。itemid为答案的编号,itemname为答案的内容。当然还要有一项是qvalue记录问题的最终选项,这项是在填写调查表时添加进去的。
    正如大家看到的,文档中嵌套了许多内容,在添加“问题”的各子节点内容时还要想办法添加“答案”对应的子节点内容,而后者整体在前者之中。然而如果要进行节点的删除操作,替换操作呢,定位的问题实在是有点复杂。我仿照这在论坛上下载的一个实例写了一些代码,仍不能够很好的实现各种操作,如下:
    Set objquestion = objXmlDoc.createElement("question")
        objXmlDoc.documentElement.appendChild objquestion
        
        ' 创建各个子节点
        '-----------------------------------------------------
        Set objNode = objXmlDoc.createElement("questionid")
        objNode.Text = strid
        objquestion.appendChild objNode
        
        Set objNode = objXmlDoc.createElement("qname")
        objNode.Text = strname
        objquestion.appendChild objNode
        
        Set objNode = objXmlDoc.createElement("qtype")
        objNode.Text = strtype
        objquestion.appendChild objNode
        ......
        '----------------------------------------------------
        ' 从XML文件中删除数据
        ' 需要首先设置Id
       Public Function DeleteFromXml(objXmlDoc)
        Dim objNodeList, objNode
        
        ClearError
        
        If objXmlDoc Is Nothing Then
          DeleteFromXml = False
          AddErr "Dom对象为空值"
          Exit Function
        End If
        
        If CStr(strId) = "-1" Then
          DeleteFromXml = False
          AddErr "未正确设置问题的ID属性"
          Exit Function
        End If
        
        Set objNodeList = objXmlDoc.getElementsByTagName("question")    
        If objNodeList.length - strId < 0 Then
          DeleteFromXml = False
          AddErr "未找到相应的问题"
          Set objNodeList = Nothing
          Exit Function
        End If
        
        On Error Resume Next
        Set objNode = objXmlDoc.documentElement.removeChild(objNodeList(strId-1))
        If objNode Is Nothing Then
          DeleteFromXml = False
          AddErr "删除问题失败"
          Set objNodeList = Nothing
          Exit Function
        Else
          objXmlDoc.save Server.MapPath(XMLFILE)'保存删除后的信息
        End If
        Set objNode = Nothing
        Set objNodeList = Nothing
        
        If Err.Number = 0 Then
          DeleteFromXml = True
        Else
          DeleteFromXml = False
          AddErr Err.Description
        End If
      End Function
      

    所以我很想听听大家的意见,如果您有好的想法,请告诉我,谢谢!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/3 23:27:00
     
     小鞋子 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      头衔:大法師
      等级:大二期末(Java考了96分!)
      文章:353
      积分:958
      门派:XML.ORG.CN
      注册:2003/12/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给小鞋子发送一个短消息 把小鞋子加入好友 查看小鞋子的个人资料 搜索小鞋子在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看小鞋子的博客2
    发贴心情 
    不管复杂.呵..建议是不是可以用到属性啊..

    ----------------------------------------------
    本人只會一點點XML.
    和ASP.以及FLASH.其它都不太懂.

    大家多多指教.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/4 0:12:00
     
     锋划雪月 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:49
      积分:127
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给锋划雪月发送一个短消息 把锋划雪月加入好友 查看锋划雪月的个人资料 搜索锋划雪月在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看锋划雪月的博客3
    发贴心情 
    谢谢!可是,我如何用脚本实现在节点树中添加新节点的同时加入其属性呢?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/7 23:09:00
     
     锋划雪月 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:49
      积分:127
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给锋划雪月发送一个短消息 把锋划雪月加入好友 查看锋划雪月的个人资料 搜索锋划雪月在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看锋划雪月的博客4
    发贴心情 
    版主,管理员,您们也说句话啊!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/8 11:39:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 XML基础 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客5
    发贴心情 
    新建一个节点,为他添加属性,,在把这个节点加入,就可以了。。

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/8 13:02:00
     
     锋划雪月 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:49
      积分:127
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给锋划雪月发送一个短消息 把锋划雪月加入好友 查看锋划雪月的个人资料 搜索锋划雪月在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看锋划雪月的博客6
    发贴心情 
    大哥,你说的我知道哦,关键是如何通过dom对象在节点里加入属性,您告诉我写属性的关键字就成了.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/8 17:23:00
     
     锋划雪月 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:49
      积分:127
      门派:XML.ORG.CN
      注册:2004/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给锋划雪月发送一个短消息 把锋划雪月加入好友 查看锋划雪月的个人资料 搜索锋划雪月在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看锋划雪月的博客7
    发贴心情 
    那大姐,你说的我知道哦,关键是如何通过dom对象在节点里加入属性,您告诉我写属性的关键字就成了.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/8 21:20:00
     
     33341112 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:7
      积分:82
      门派:XML.ORG.CN
      注册:2005/12/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给33341112发送一个短消息 把33341112加入好友 查看33341112的个人资料 搜索33341112在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看33341112的博客8
    发贴心情 
    有点复杂
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/20 11:26:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/9/27 13:34:28

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

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