2013-05-29 9 views
4

App_Data 폴더 안에 xml이 있습니다. 해당 XML 노드의 값을 편집해야합니다. 내가XML 노드를 새 값으로 업데이트하는 방법은 무엇입니까?

 XmlDocument xDoc = new XmlDocument(); 
     xDoc.Load(Server.MapPath("~/App_Data/conf.xml.config")); 

     XmlNodeList aNodes = xDoc.SelectNodes("/ConfigInf"); 
     foreach (XmlNode node in aNodes) 
     { 
      XmlNode child1 = node.SelectSingleNode("Node1"); 
      XmlNode child2 = node.SelectSingleNode("Node2");    

      child1.InnerText = "Value1"; 
      child2.InnerText = "Value2"; 
     } 

IS-시도했다 내가 내가 다시 같은 XML에 접근하기 위해서는 새로운 값이 포함되어야하려고 어느 때와 같이 새 값으로 다시 쓰기 XML로해야합니다. 그러나 xml에 액세스 할 때, 나는 이렇게 호출 할 때만 이전 (초기) 값을 얻습니다. Test.LoadConf(Server.MapPath("./App_Data/conf.xml.config"));. 새 값으로 XML에 쓰는 방법 또는 새 값으로 새 XML을 만드는 방법 (하나의 페이지에서만이 XML에 액세스해야 함)

+4

메모리에 적용되었습니다. –

답변

6

편집 후 호출 저장, 다른 이름을 부여 할 수 있음 if 원본을 덮어 쓸 필요가 없습니다.

예. new.conf.xml.config

xDoc.Save(Server.MapPath("~/App_Data/new.conf.xml.config")); 

다음라는 이름으로 새 파일 당신은 당신이 그

사용 xDoc.save(Server.MapPath("~/App_Data/conf.xml.config"));

+0

Damith, 고맙습니다. 하지만 Visual Studio에서 파일이 소스 외부에서 수정되었다는 메시지 상자를 표시하는 데 시간이 좀 걸릴 수 있습니다. 이것을 피하는 방법은 없나요? 이 구성 파일을 솔루션에 추가했기 때문에 – Sandy

+0

입니다. 그 응용 프로그램 VS에 의해 파일 업데이 트가 바뀌 었 파일을 경고하면 .. 실제로이 응용 프로그램을 배포 할 때 아무 문제가 없습니다. 이 걱정하지 말아라 – Damith

+0

새로운 xml 파일에 저장 했으므로 아무런 문제가 없다. 귀중한 의견을 보내 주셔서 감사합니다. – Sandy

0

로 원본을로드 할 수 있습니다 텍스트 노드의 값을 변경하는 데 사용할 수 있습니다. 예 :

다음 코드는 첫 번째 요소의 텍스트 노드 값을 변경

xmlDoc=loadXMLDoc("books.xml"); 

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; 
x.nodeValue="Easy Cooking"; 

소스 : 당신은 아마 그들은 단지가 이러한 변경 한 후 파일을 저장할 http://www.w3schools.com/DOM/dom_nodes_set.asp

0

NodeValue를 등록 후 파일을 저장하지 않은 보통의

xDoc.Load(Server.MapPath("~/App_Data/conf.xml.config")); 
0
node["Node1"].InnerText = "Value1"; 
node["Node2"].InnerText = "Value2"; 
관련 문제