再次请教关于asp.net删除xml节点的问题。

skylen 2003-10-20 06:03:01
xml结构如下

<PROWEB>
<PAPER>
<PAPERDATA ID="0" TYPE="0" TOPIC="我 的 天 地" AUTHOR="skylen" ADDTIME="1991-06-25" FROM="互联网络" />
<PAPERDATA ID="1" TYPE="0" TOPIC="我 的 天 地" AUTHOR="skylen" ADDTIME="1991-07-25" FROM="互联网络" />
<PAPERDATA ID="2" TYPE="0" TOPIC="我 的 天 地" AUTHOR="skylen" ADDTIME="1991-08-25" FROM="互联网络" />
</PAPER>
</PROWEB>

现在想删除 id=0的那一个节点。我写了如下,
XMLDOC.Load(XMLFILE)
Dim removnode As XmlNode = XMLDOC.SelectSingleNode("//PROWEB/WEBDATA/PAPER/PAPERDATA")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XMLDOC.RemoveChild(removnode)
XMLDOC.Save(XMLFILE)

关于上面的xpath 我不知道怎么才能指定id=0的那一条。。
再或是要用别的办法,请各位不吝赐教。

==================下面是别人的回复=======================

===>
Dim removnode As XmlNode = XMLDOC.SelectSingleNode("//PROWEB/WEBDATA/PAPER/PAPERDATA[@ID='0']")
..........

===>
Dim removnode As XmlNode = XMLDOC.SelectSingleNode("//PROWEB/PAPER/PAPERDATA[@ID='1]")

========================================================


我试了很多次。一个下午就这样过去了。
再说明一点。已经定义了 SCHEMA ,ID是integer类型。

我这里出的错误信息是这样的,
==========================================================
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 72行错


行 70: Dim nodexpath As String = "//PROWEB/PAPER/PAPERDATA[@ID='1']"
行 71: Dim removnode As XmlNode = XMLDOC.SelectSingleNode(nodexpath)
行 72: XMLDOC.RemoveChild(removnode)
行 73: XMLDOC.Save(XMLFILE)
行 74:
===============================================


各位大慈大悲的好人,求救。
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoyan19811021 2003-10-21
  • 打赏
  • 举报
回复
XMLDOC.RemoveChild(removnode)
===>
XMLDOC.DocumentElement.RemoveChild(removnode)
skylen 2003-10-20
  • 打赏
  • 举报
回复
有没有人救命啊。。。。。。。。。。。。
skylen 2003-10-20
  • 打赏
  • 举报
回复
都到这个时候了,我还在等啊。
skylen 2003-10-20
  • 打赏
  • 举报
回复
当然是有几个<PAPERDATA> 就有几个了。问题是我现在只用了 SelectSingleNode 应该只出来一个啊。
grepl 2003-10-20
  • 打赏
  • 举报
回复
你查一下,你查询的结点的结果有几个
skylen 2003-10-20
  • 打赏
  • 举报
回复
这句都有的。
最上面有定义
Dim XMLFILE As String = Server.MapPath("../WEB/XMLDB/SKYLEN.XML")
Dim XMLDOC As XmlDocument = New XmlDocument()
rgbcn 2003-10-20
  • 打赏
  • 举报
回复
XmlDocument xmlDoc = new XmlDocument() ;
有这句吗?

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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