将 XML 作为字符串进行操作从来都不是一个好主意。看起来您在topic
. 你为什么不把它当作一个 XML 来对待。首先让我们让它成为一个有效的 XML,只是为了使用它。
<options>
<option value=\"123\" isSelectd=\"false\">X</option>
<option value=\"456\" isSelectd=\"false\">XX</option>
</options>
此处添加了根节点<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>