替换string.format中的部分字符串

时间:2015-07-21 14:02:08

标签: c# .net

我有XML字符串,想要替换我的一个属性的值。是否可以使用string.format替换值?

例如:XML String如下所示:

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

现在我要将<>替换为&lt;&gt; 如何操作字符串来替换这些字符?

1 个答案:

答案 0 :(得分:-1)

您可以使用此纯字符串方法方法:

string input = @"<ParentNode>
<ChildNode>Special `~@#$%^&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;")