c# - 如何在 c# 中替换 xml 开始标记和 xml 结束标记之间的内容?
问题描述
我有一个 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 标签中的数字。我怎样才能做到这一点?
谢谢!
解决方案
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);
}
}
}
推荐阅读
- python - 将文件路径从烧瓶发送到 Ajax
- c - 为什么在 C 中使用 int 格式将输入转换为 char 会改变另一个 char 变量的值?
- node.js - 无法导入 openzeppelin node_modules:不支持文件导入回调
- python - 从 ASP.NET 使用批处理文件调用 Python (anaconda)
- javascript - 这个 noflo 组件有问题吗?
- reactjs - 不明白为什么我的 JSX 元素的动态连接不起作用
- mongoose - 在 mongoose 中访问和比较 2 个模式的键
- vb.net - My.settings 不适用于新表单,之前绑定到其他表单上的 My.Settings 无法更改(灰显)
- flutter - 数据未添加到 Flutter 的列表中
- javascript - 如果我们改变 setTimeout 和 setInterval 的顺序,为什么会额外执行 setInterval 的函数?