C# 是否从写入字符串的xml文件中删除标记?

C# 是否从写入字符串的xml文件中删除标记?,c#,xml,string,C#,Xml,String,这是字符串中数据的外观: <temp><id>TGPU1</id><label>GPU</label><value>67</value></temp><temp><id>THDD1</id><label>ST3320620AS</label><value>34</value></temp><temp&

这是字符串中数据的外观:

<temp><id>TGPU1</id><label>GPU</label><value>67</value></temp><temp><id>THDD1</id><label>ST3320620AS</label><value>34</value></temp><temp><id>FCPU</id><label>CPU</label><value>1430</value></temp>
您可以使用LINQ:

String.Concat(
    XElement.Parse(...)
            .Descendants("value")
            .Select(v => v.Value)
);
如果您真正关心性能,可以直接使用
XmlReader
读取
标记并附加到
StringBuilder


但是,这不值得,除非您的XML有数百兆字节大。

您最好将XML加载到XElement中并对其进行操作。这样做会简单得多。你能解释每一行吗?我说的对吗?:它选择字符串之间的值?但那又有什么用呢?它编译得很好,但是因为它更多的是一个数据字符串而不是一个xml文件,所以它没有根。这个样本就是整个过程的样子,只是用不同的值重复了一遍。嗯?我不知道你在问什么。如果要解析多个根,请将字符串包装在一个伪标记中。哦,我在您提供的代码中遇到了一个错误,因为它们是数据(我刚刚发布的输出链接)sting中的“多个根元素”。一旦代码运行,我会将此错误作为异常。
bool FoundMatch = false;

try {
    Regex regex = new Regex(@"<([be])pt[^>]+>.+?</\1pt>");
    while(regex.IsMatch(yourstring) ) {
            yourstring = regex.Replace(yourstring, "");
    }
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
static void Main(string[] args)
{
    Console.WriteLine("Memory mapped file reader started");

    using (var file = MemoryMappedFile.OpenExisting("sensor"))
    {
        using (var reader = file.CreateViewAccessor(0, 3800))
        {
            var encoding = Encoding.ASCII;
            Console.WriteLine(encoding.GetString(bytes));
        }
    }

    Console.WriteLine("Press any key to exit ...");
    Console.ReadLine();
}
String.Concat(
    XElement.Parse(...)
            .Descendants("value")
            .Select(v => v.Value)
);