0

以下は、このコードを使用してWebサービスから受け取るxml入力です。

string url = txtURL.Text;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
XmlDocument doc = new XmlDocument();
doc.Load(rep.GetResponseStream());
rep.Close();

これで、「doc」に次のxmlドキュメントがあります。

<note>
<parent_element>
<child_element attribute_1="1">
<inner_element> first Text </inner_element>
</child_element>
<child_element attribute_1="2">
<inner_element> second Text </inner_element>
</child_element>
</parent_element>
</note>

次に、属性値に基づいて最初の子要素を削除します。したがって、子要素の属性値が「1」の場合、「child_element」とそのすべての子要素を削除します。したがって、私の最終結果は次のようになります。

<note>
<parent_element>
<child_element attribute_1="2">
<inner_element> second Text </inner_element>
</child_element>
</parent_element>
</note>

要素を削除したら、それをWebサービスに書き戻します。私はたくさんのことを求めていることを知っていますが、今のところそれを理解することができていません。私は自分のコードを含めますが、私はxml操作の初心者なので、それは役に立たないと思います(悲しい顔)。任意の助けや指示をいただければ幸いです。

君たちありがとう。

4

1 に答える 1

0

まず第一にdoc.load(txtURL.Text)、リモートの場所から XML をロードするには十分です。

次のようにノードを削除できます。

XmlDocument doc = new XmlDocument();
doc.Load(filename);

//Select node that needs to be deleted
XmlNode node = doc.SelectSingleNode("/note/parent_element/child_element[@attribute_1 = '1']");
node.ParentNode.RemoveChild(node);

これらすべてを Web アプリケーションに書き戻す方法は、アプリケーションが何を期待しているかによって異なります。RESTful Web サービスに対して XML ファイルを POST する例を 1 つ添付します。

WebRequest req = WebRequest.Create(updateURL);

req.ContentType = "text/xml";
req.Method = "POST";
byte[] bytes = System.Text.Encoding.Default.GetBytes(xmldoc);
req.ContentLength = bytes.Length;

Stream data = req.GetRequestStream();

data.Write(bytes, 0, bytes.Length);
data.Close();
于 2012-07-27T05:01:56.073 に答える