2012-05-02 49 views
0

我有一個xml文檔存儲在服務器上的一個文件中,現在我想修改相同的使用Linq to Xml。 這裏是我的代碼:我使用如何使用LINQ to XML修改XML(XDocument)

String strFile = File.ReadAllText(Server.MapPath("~/SessionAnalyserAccessories.xml")); 
XDocument xdoc1 = XDocument.Parse(strFile); 
xdoc1.XPathSelectElement("SESSIONANALYSER/AP/MODES/NI/STATEINFORMATION/INIT/INPUT/METHOD").AddAfterSelf(new XElement("METHOD", "", new XAttribute("NAME", "Saurabh"))); 

XML示例中,我需要添加一個元素STATEINFORMATION

<SESSIONANALYSER> 
    <AP> 
    <MODES> 
     <NI> 
     <STATEINFORMATION TYPE="PREPAID"> 
      <INIT INVALIDINPUTRESPONSE="-2"> 
      <INPUT VALUE="SLN7ACTIVATION"> 
       <METHOD NAME="CHECKSUBSCRIBERBALANCE" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" /> 
       <METHOD NAME="SETPSOINUCIP" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" /> 
      </INPUT> 
      </INIT> 
     </STATEINFORMATION> 
     <STATEINFORMATION TYPE="POSTPAID"> 
      <INIT INVALIDINPUTRESPONSE="-2"> 
      <INPUT VALUE=""> 
       <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="5" NEXTLEVEL="" /> 
      </INPUT> 
      </INIT> 
     </STATEINFORMATION> 
     </NI> 
    </MODES> 
    </AP> 
</SESSIONANALYSER> 
+0

那麼,你嘗試過什麼? – AgentFire

+0

如果您正在尋找教程,您可能需要在Google上搜索「Linq to Xml」。 – Botz3000

+0

@AgentFire,是的,我嘗試使用XPath插入元素,但由於我的XML層次結構非常深(我還有其他XML文件也很深!),所以我必須傳遞我需要的完整層次結構信息插入代碼中。沒有任何自動化方法,我會說插入某個標籤後,它會找到一個並插入。我也將Xpath代碼添加到問題中。 – Charu

回答