我有一个外部 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 变量中发送的值替换。任何人都可以告诉我如何将值从 c# 发送到 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
正确使用。字符串是不可变的,因此此方法返回一个新字符串,其中旧文本被新文本替换。你的代码没有将它分配给任何东西,所以当方法完成时它会被丢弃。
这将满足您的需求,但内存效率不高,因为您必须将整个文件读入内存才能执行替换。
另一种方法是使用XmlReader和 XmlWriter 从文件中一次读取一个节点,并通过读取器将它们传递给写入器,有条件地将更新的元素值写入在节点序列中找到的位置。
- 3 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消