加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在VB.NET中使用LINQ to XML更新XML元素

发布时间:2020-12-17 07:14:15 所属栏目:百科 来源:网络整理
导读:我正在尝试更新以下 XML文档中的元素: 这是代码: Dim xmldoc As XDocument = XDocument.Load(theXMLSource1) Dim ql As XElement = (From ls In xmldoc.Elements("LabService") _ Where CType(ls.Element("ServiceType"),String).Equals("Scan") _ Select
我正在尝试更新以下 XML文档中的元素:

这是代码:

Dim xmldoc As XDocument = XDocument.Load(theXMLSource1)
        Dim ql As XElement = (From ls In xmldoc.Elements("LabService") _
                Where CType(ls.Element("ServiceType"),String).Equals("Scan") _
                Select ls.Element("Price")).FirstOrDefault


        ql.SetValue("23")
        xmldoc.Save(theXMLSource1)

这是XML文件:

<?xml version="1.0" encoding="utf-8"?>
<!--Test XML with LINQ to XML-->

<LabSerivceInfo>

  <LabService>
    <ServiceType>Copy</ServiceType>
    <Price>1</Price>
  </LabService>

  <LabService>
    <ServiceType>PrintBlackAndWhite</ServiceType>
    <Price>2</Price>
  </LabService>

</LabSerivceInfo>

但是,我收到此错误消息:

Object reference not set to an instance of an object.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Error line:ql.SetValue("23")

你能告诉我这是什么问题吗?谢谢.

解决方法

xdoc是文档本身,仅包含根元素.因此,xmldoc.Elements(“LabService”)不返回任何内容.

您需要编写xmldoc.Root.Elements(“LabService”).

顺便说一句,编写Where子句的最佳方法是Where ls.Element(“ServiceType”).Value =“Scan”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读