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>
那麼,你嘗試過什麼? – AgentFire
如果您正在尋找教程,您可能需要在Google上搜索「Linq to Xml」。 – Botz3000
@AgentFire,是的,我嘗試使用XPath插入元素,但由於我的XML層次結構非常深(我還有其他XML文件也很深!),所以我必須傳遞我需要的完整層次結構信息插入代碼中。沒有任何自動化方法,我會說插入某個標籤後,它會找到一個並插入。我也將Xpath代碼添加到問題中。 – Charu