簡體   English   中英

xml中的簡單字符串替換

[英]Simple string replace in xml

我有一個包含相當一部分XML的字符串,它實際上是描述單詞document(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> 

正如我所說的那樣。 我只是嘗試用空字符串替換<w:t>References</w:t> 我這樣做是這樣的:

//xmlBody is the string that is holding the xml
xmlBody.Replace("<w:t>References</w:t>", " ");

這是行不通的,當我這樣做時字符串沒有改變。 我究竟做錯了什么? 任何建議將不勝感激,非常感謝!

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

Replace函數不會更改源字符串。 它返回一個包含所做更改的新字符串。 實際上,C#字符串無法更改。 如果您查看文檔 ,它說它們是不可變的。

在C#中,字符串不可更改-一旦創建,就無法更改。 Replace返回一個新的字符串實例。 因此,您需要捕獲其返回值:

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

附帶說明一下,用正則表達式解析基於XML的字符串不是一個好習慣,因為它太脆弱了。 考慮使用XDocument或類似的工具來刪除您想要的元素。

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

嘗試

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

Replace不是內聯替換...它會返回已完成替換的新字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM