تغيير يك node در فايل XML
سلام
من يك فايل Xml دارم كه محتواش تقريبا به اين صورته
<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.1" productVersion="12.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\ali\Desktop\Temp\BB. xsn" name="urn:schemas-microsoft-com:office:infopath:BB:-myXSD-2009-12-01T07-46-17" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?><my:myFields xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-12-01T07:46:17" xml:lang="fa">
<my:field1>11</my:field1>
<my:field2>22</my:field2>
</my:myFields>
من مي خوام يك مقدار رو توش عوض كنم البته اين قدار هميشه يك مقدار ثابت نيست
C:\Documents%20and%20Settings\ali\Desktop\Temp\BB. xsn
مي خوام مسيري كه در بالا نوشتم رو تو اين فايل XML عوض كنم
در حقيقت مي خوام مقدارnode ي كه اسمش href هست رو عوض كنم
حالا سوالم اينه كه چه طور مي تونم به يك node دسترسي داشته باشم و اون رو تغيير بدم
البته فكر كنم اين Href در Header فايل XML باشه !!!
ممنون از توجه دوستان !
نقل قول: تغيير يك node در فايل XML
using System.Xml.Linq;
XDocument xDoc = XDocument.Load("your xml file path");
XDoc.Element(XName.Get("?mso-infoPathSolution")).ReplaceAttribiute(XName.Get("h ref"),"YOUR NEW VALUE");
XDoc.Save("your xml file path");
نقل قول: تغيير يك node در فايل XML
ممنون دوست عزيز
من از Source شما استفاده كردم
ولي اول Error داد
The '?' character, hexadecimal value 0x3F, cannot be included in a name.
بعد هم كه "؟" رو برداشتم اين Error رو ميده !؟
Object reference not set to an instance of an object.
ممنون مي شم اگه راهنمايي كنين
نقل قول: تغيير يك node در فايل XML
نقل قول:
نوشته شده توسط
amin_alexi
سلام من يك فايل Xml دارم كه محتواش تقريبا به اين صورته
در حقيقت مي خوام مقدارnode ي كه اسمش href هست رو عوض كنم
حالا سوالم اينه كه چه طور مي تونم به يك node دسترسي داشته باشم و اون رو تغيير بدم
البته فكر كنم اين Href در Header فايل XML باشه !!! ممنون از توجه دوستان !
سلام.
از ProcessingInstruction استفاده کنید:
XmlDocument doc = new XmlDocument();
doc.Load("temp.xml");
string newXsnFilePath = "c:\\newFile.xsn";
XmlProcessingInstruction pi = (XmlProcessingInstruction)doc.SelectSingleNode("/processing-instruction(\"mso-infoPathSolution\")");
pi.Value = string.Format("solutionVersion=\"1.0.0.1\" productVersion=\"12.0.0\" PIVersion=\"1.0.0.0\" href=\"file:///{0}.xsn\" name=\"urn:schemas-microsoft-com:office:infopath:BB:-myXSD-2009-12-01T07-46-17", newXsnFilePath);
doc.Save("new.xml");