Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# xml中的简单字符串替换_C#_.net - Fatal编程技术网

C# xml中的简单字符串替换

C# xml中的简单字符串替换,c#,.net,C#,.net,我有一个字符串,其中包含相当多的XML,它实际上是描述word文档(document.XML)的XML。我只想用一个空字符串替换字符串的一部分,有效地将其从字符串中删除。这听起来很直截了当,但我没有得到我期望的结果 以下是一些XML的外观,这只是前10行: <w:body xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:p w:rsidR="00CB3A3E" w:rs

我有一个字符串,其中包含相当多的XML,它实际上是描述word文档(document.XML)的XML。我只想用一个空字符串替换字符串的一部分,有效地将其从字符串中删除。这听起来很直截了当,但我没有得到我期望的结果

以下是一些XML的外观,这只是前10行:

<w:body xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <w:p w:rsidR="00CB3A3E" w:rsidP="00257CF7" w:rsidRDefault="008C1E91">
        <w:pPr>
            <w:pStyle w:val="Heading-Title" />
        </w:pPr>
        <w:r>
            <w:t>References</w:t>
        </w:r>
    </w:p>
    <w:sdt> 

工具书类
正如我所说,这是一个字符串。我只是尝试用空字符串替换
引用。我是这样做的:

//xmlBody is the string that is holding the xml
xmlBody.Replace("<w:t>References</w:t>", " ");
//xmlBody是保存xml的字符串
替换(“引用”和“);
这不起作用,执行此操作时字符串未更改。我做错了什么?任何建议都将不胜感激,谢谢

xmlBody=xmlBody.Replace(“References”和“”);
xmlBody = xmlBody.Replace("<w:t>References</w:t>", "");
Replace函数不改变源字符串;它返回一个包含所做更改的新字符串。事实上,C#字符串是无法更改的。如果您签出,它会说它们是不可变的。

xmlBody=xmlBody.Replace(“References”,”);

Replace函数不改变源字符串;它返回一个包含所做更改的新字符串。事实上,C#字符串是无法更改的。如果签出,则表示它们是不可变的。

string.replace返回一个新字符串,但不会更改原始字符串

试一试

xmlBody=xmlBody.Replace(“References”和“”);

string.replace返回一个新字符串,它不会更改原始字符串

试一试

xmlBody=xmlBody.Replace(“References”和“”);

替换不是内联替换。。。它返回一个新字符串,并进行替换。

替换不是内联替换。。。它返回一个新的字符串,并进行替换。

在C#中,字符串是不可变的-一旦创建,它就不能更改<代码>替换
返回字符串的新实例。因此,您需要捕获其返回值:

xmlBody = xmlBody.Replace("<w:t>References</w:t>", " ");
xmlBody=xmlBody.Replace(“References”和“”);
作为旁注,使用正则表达式解析基于XML的字符串被认为不是一个好的实践,因为它太脆弱了。考虑使用<代码> xObjs或一些这样的元素来删除您所追随的元素。

在C中,字符串不是可变的——一旦创建,就不能更改。代码>替换返回字符串的新实例。因此,您需要捕获其返回值:

xmlBody = xmlBody.Replace("<w:t>References</w:t>", " ");
xmlBody=xmlBody.Replace(“References”和“”);

作为旁注,使用正则表达式解析基于XML的字符串被认为不是一个好的实践,因为它太脆弱了。考虑使用<代码> XObjs或一些这样的元素来删除您正在使用的元素。

请尝试使用适当的XML对象来操作XML。首先,您不会以这种方式生成无效XML,其次,当您发现可能位于文本或类似内容的separe行上时,您将避免询问“如何使用正则表达式解析/搜索XML”。请尝试使用适当的XML对象来操作XML。首先,您不会以这种方式生成无效XML,其次,当您发现可能位于文本或类似内容的separate行上时,您将避免询问“如何使用正则表达式解析/搜索XML”。