C# xml中的简单字符串替换
我有一个字符串,其中包含相当多的XML,它实际上是描述word文档(document.XML)的XML。我只想用一个空字符串替换字符串的一部分,有效地将其从字符串中删除。这听起来很直截了当,但我没有得到我期望的结果 以下是一些XML的外观,这只是前10行: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
<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”。