XML を文字列として操作することは決して良い考えではありません。に XML の一部があるようですtopic
。XML のように扱ってみませんか。まず、操作するためだけに有効な XML にしましょう。
<options>
<option value=\"123\" isSelectd=\"false\">X</option>
<option value=\"456\" isSelectd=\"false\">XX</option>
</options>
ルート ノードがここに追加され、両方の子ノードに対して最初は false で<options>
ある新しい属性も追加されます。isSelectd
の値を持つノードを456
検索して更新する必要があります。XmlDocumentクラスを使用すると、このように必要なものを簡単に実現できます。
var topic = "<options>" +
"<option value=\"123\" isSelectd=\"false\">X</option>" +
"<option value=\"456\" isSelectd=\"false\">XX</option>" +
"</options>";
int selectedValue = 456;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(topic);
foreach (XmlNode node in xmlDoc.ChildNodes[0].ChildNodes)
{
int value = Convert.ToInt32(node.Attributes[0].Value.ToString());
if (value == selectedValue)
node.Attributes[1].Value = "ture";
}
topic = xmlDoc.InnerXml;
トピックには次の XML が含まれるようになりました。
<options>
<option value=\"123\" isSelectd=\"false\">X</option>
<option value=\"456\" isSelectd=\"true\">XX</option>
</options>