2011-06-28 12 views
-6

質問C#の問題

私はXMLdocumentXdocument両方のクラスをしようとしていたが、didntのは、いずれかを持って、このファイルには、より製品を追加する必要があり、このようなXMLスキーマを持っています良い結果

<prodcuts> 
    <product> 
    <name>123</name> 
    <price>123</price> 
    </product> 
</products> 

CODE:

私はXdocuをしようとしていましたこのコード

 XDocument xmldoc = XDocument.Load("F://products.xml"); 
     XElement parentElement = new XElement(xmldoc.XPathSelectElement("product")); 
     XElement newElement = new XElement("name","32323"); 
     XElement newElement = new XElement("price","150"); 
     parentElement.Add(newElement); 
     xmldoc.Save("F://products.xml"); 

例外

Value cannot be null. 
Parameter name: other 

とMENTクラスIは、あまりにもXMLdocumentクラスをトリングが、私は間違っていない結果...

ましたか? ...この問題はLINQまたは他の方法で解決できますか?あなたのサンプルに基づいて

+0

あなたが唯一の第二のXElement(「価格」、「150」)を追加している... –

+1

このコードはコンパイルされません - あなたは二度同じローカル変数を宣言しました。実際の*コードを教えてください。 –

+0

parentElementを 'new'しないでください。 –

答えて

4

を与えた例ではヌルだと思います私があなたが望むと思うところにあるルートノード。

xmlDoc.Root.Add(
    new XElement("product", 
     new XElement("name", "456"), 
     new XElement("price", "456"))); 
+0

thaknks daveはうまく動作します – Sudantha

2

、親へのパスをdoesntのことする必要がありますのprodcuts /製品

XElement parentElement = new XElement(xmldoc.XPathSelectElement("prodcuts/product")); 

それはparentElementは、あなたがこの下に新しいXElementオブジェクトを作成します