如何在C#中的xml起始标记和xml结束标记之间替换某些内容?

问题描述 投票:0回答:1

我有一个xml文件,Body.xml:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <MyNumbers xmlns="http://google.com/">
      <number1>1</number1>
      <number2>1</number2>
      <number3>1234</number3>
      <number4>1</number5>
    </MyNumbers>
  </soap12:Body>
</soap12:Envelope>

我想以编程方式从数字列表中更改number3标签中的数字...。我怎样才能做到这一点?

谢谢!

c# xml namespaces linq-to-xml
1个回答
0
投票

MyNumbers中的默认名称空间已更改。因此,最简单的方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;



namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);
            XElement soap = doc.Root;

            XElement number3 = doc.Descendants().Where(x => x.Name.LocalName == "number3").FirstOrDefault();

            number3.SetValue(5678);

        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.