我有一個外部 CML 文件,我將它保存在 Asp.Net mvc 項目的 Xml 文件夾中string lStrXMLRequest = System.Web.HttpContext.Current.Server.MapPath("/Xml/SoapAvailabilitySearch.xml");StreamReader str = new StreamReader(lStrXMLRequest);string XMLText = str.ReadToEnd();str.Close();XMLText.Replace("[orgname]",org);但是我看到 orgname 沒有被 org 變量中發(fā)送的值替換。任何人都可以告訴我如何將值從 c# 發(fā)送到 XML 文件。這是我的 XML 文件:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <AvailabilitySearch xmlns="http://www.reservwire.com/namespace/WebServices/Xml"> <xiRequest> <Authority> <Org>[orgname]</Org> </Authority> </xiRequest> </AvailabilitySearch> </soap:Body></soap:Envelope>任何幫助將非常感激。
3 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
您編寫了一個 XML 文件,但其中一個字段不正確,因此與其在編寫之前更正該字段,不如決定將其作為文本加載到內存中,并進行字符串替換是個好主意?
如果該文件是 100MB 或 10GB 怎么辦?您可能很難將其加載到內存中只是為了進行字符串替換!
為什么不首先修復文件?

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
您最初的嘗試未string.Replace
正確使用。字符串是不可變的,因此此方法返回一個新字符串,其中舊文本被新文本替換。你的代碼沒有將它分配給任何東西,所以當方法完成時它會被丟棄。
這將滿足您的需求,但內存效率不高,因為您必須將整個文件讀入內存才能執(zhí)行替換。
另一種方法是使用XmlReader和 XmlWriter 從文件中一次讀取一個節(jié)點,并通過讀取器將它們傳遞給寫入器,有條件地將更新的元素值寫入在節(jié)點序列中找到的位置。
- 3 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消