1

ロードした xml に特定の値を書き込むにはどうすればよいですか? たとえば、OriginSource の値を PreferenceID 3 に合わせて変更したいのですが、これを行う最も効率的な方法は何ですか?

これは私がやろうとしていることの短いサンプルです。

    XmlDocument doc = new XmlDocument();
            XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("UserObject"));   

                    XmlNode emailAddressXml = UserEmailAddressDTO.AppendChild(doc.CreateNode(XmlNodeType.Element, "EmailAddress", null));
                    emailAddressXml.InnerText = emailaddress;

                    doc.Load("Prefs.xml");

                    XmlNode SourceXml = UserEmailAddressDTO.AppendChild(doc.CreateNode(XmlNodeType.Element, "Source", null));
                    originSourceXml.InnerXml = "Good Sam";

    string usrObj = doc.outerXml;
4

1 に答える 1

2

効率は主観的なものなので、推奨事項を提供します。.Net バージョン (3.5+ だと思います) によっては、Linq2Xmlを使用する必要があります。

XDocumentXElement、およびXAttributeは非常に扱いやすいです。

var doc = XDocument.Load("Prefs.xml");

var prefs = doc.Root.Descendents("UserEmailAddressPreferences");

XElementこれで、prefsLinq を使用してそれぞれを反復処理できます。値の取得と編集は非常に簡単です。

//  untested code
XElement el = prefs.Elements().Where(e => e.Element("PreferenceID").Value == 3)
                              .Select(e => e.Element("OriginSource")
                              .FirstOrDefault();

el.Value = "Something else":
于 2013-03-06T18:24:32.623 に答える