日期:2014-05-17  浏览次数:20811 次

如何使用linq修改字符串中的内容
<kyc_template>    
<form_fields>      
<field field_name="Address" field_code="address" table_field_name="address" field_data_type="1" line="1" required="False" reference_data_type="" />      
<field field_name="city" field_code="city" table_field_name="city" field_data_type="1" line="2" required="False" reference_data_type="" />      
<field field_name="province" field_code="province" table_field_name="province" field_data_type="1" line="2" required="False" reference_data_type="" /> 
</form_fields>  
</kyc_template>
以上是表中某个字段的内容,现在需要将 line="2" 的field的required的值都改为“True”,最后写会数据库。

------解决方案--------------------
如果符合xml格式,就用linq的xdocument去更改节点属性值,然后将xml字符串update回去
------解决方案--------------------
string str = File.ReadAllText("D:\\1.txt", Encoding.Default);
            str = Regex.Replace(str, @"(?<=<field(?=[^>]*?line=""2"")[^>]*?required="")[^""]+(?="")", "True");
            
------解决方案--------------------
		XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("你的xml文本");
xmlDoc.SelectNodes("//field[@line='2']").Cast<XmlNode>().ToList().ForEach(x => x.Attributes["required"].Value = "true");
xmlDoc.Save(@"c:\test.xml");