2015-07-21 140 views
-2

我有XML字符串,並且想要替換我的某個屬性的值。是否可以使用string.format替換值?替換string.format中的部分字符串

如:XML字符串是一樣的東西如下:

<ParentNode> 
    <ChildNode>Special `[email protected]#$%^&amp;*()_+-=[]|:;\'/.,<>? message0</ChildNode> 
</ParentNode> 

現在我要替換<>&lt;&gt; 如何操作字符串替換這些字符?

+3

則可以修復XML的源產生有效XML在第一位? –

+1

所以你有這個字符串?或者它是一個XML文件?我很困惑 – greenfeet

+0

編號string.Format()是要格式化顯示。 string.Replace()是你想要的。 – dman2306

回答

-1

你可以使用這個純字符串方法的方法:

string input = @"<ParentNode> 
<ChildNode>Special `[email protected]#$%^&amp;*()_+-=[]|:;\'/.,<>? message0</ChildNode> 
</ParentNode>"; 
int indexOfChildNode = input.IndexOf("<ChildNode>", StringComparison.InvariantCultureIgnoreCase); 
if (indexOfChildNode >= 0) 
{ 
    int endIndexOfChildNode = input.IndexOf("</ChildNode>", indexOfChildNode + "<ChildNode>".Length, StringComparison.InvariantCultureIgnoreCase); 
    if (endIndexOfChildNode >= 0) 
    { 
     string before = input.Substring(0, indexOfChildNode); 
     string after = input.Substring(endIndexOfChildNode + "</ChildNode>".Length); 
     int indexToken = indexOfChildNode + "<ChildNode>".Length; 
     int length = endIndexOfChildNode - indexToken; 
     string token = input.Substring(indexToken, length); 
     input = string.Format("{0}<ChildNode>{1}</ChildNode>{2}" 
      , before 
      , token.Replace(">", "&gt;").Replace("<", "&lt;") 
      , after); 
    } 
} 

但是,如果你只是想更換<>它的簡單得多:

input = input.Replace("<>","&lt;&gt;")