2011-02-05 5 views
0

これはおそらく非常に初心者の質問ですが、私がしようとしているのはXMLWriterのようなものを返し、その内容を別のxmlwriterに追加する関数を書くことです。例えばxmlのビットを返す関数を書いていますか?

XmlWriter ToXML() 
    { 
     XmlWriterSettings oSettings = new XmlWriterSettings(); 
     oSettings.Indent = true; 
     oSettings.OmitXmlDeclaration = false; 
     oSettings.Encoding = Encoding.Unicode; 
     Stream output = Stream.Null; 

     XmlWriter writer = XmlWriter.Create(output, oSettings); 
     { 
      writer.WriteStartDocument(true); 
      writer.WriteComment("This BaseSprite was created by the in-phone level editor"); 

      writer.WriteStartElement("testelement"); 

      writer.WriteStartAttribute("Name"); 
      writer.WriteValue("John Howard"); 
      writer.WriteEndAttribute(); 

      writer.WriteEndElement(); 
     } 

     return writer; 
    } 

    void SomeOtherFunction() 
    { 
     XMLWriter xmlthing; 

    // add xml things to it 

    xmlthing += ToXML(); // now the contents of ToXML has been added in to xmlthing 
    } 

これは可能ですか?

*質問更新日:

XmlWriter writer; 
     XDocument doc = new XDocument(); 
     { 
      writer = doc.CreateWriter(); 

      writer.WriteStartDocument(true); 
      writer.WriteComment("This BaseSprite was created by the in-phone level editor"); 

      writer.WriteStartElement("testelement"); 

      writer.WriteStartAttribute("Name"); 
      writer.WriteValue("John Howard"); 
      writer.WriteEndAttribute(); 

      writer.WriteEndElement(); 

      writer.Close(); 
     } 

     XDocument doc2 = new XDocument(); 
     { 
      writer = doc2.CreateWriter(); 

      writer.WriteStartDocument(true); 

      writer.WriteStartElement("testnestedelement"); 

      writer.WriteStartAttribute("DUUUUUDE"); 
      writer.WriteValue("WHERES MY CAR!?"); 
      writer.WriteEndAttribute(); 

      writer.WriteEndElement(); 

      writer.Close(); 
     } 

     doc.Element("testelement").Add(doc2); // how can I make it so that doc2 is added as a nested element in 'testlement' from doc? 

答えて

1

私はあなたがあなたのアプリケーションの多くの機能の中でXMLを構成する必要がある場合は、XmlDocumentオブジェクトを使用することを好むだろう。 Silverlightの http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx またはXDocument: http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument%28v=VS.95%29.aspx あなたは単一 XDocumentまたはXmlDocumentオブジェクトを作成し、それを操作するのに必要なすべての機能を渡ってそれを渡します。

+0

私はWPDプロジェクトを実行しています(System.Xmlのリンクに従って、XMLDocumentはそのアセンブリにありません)。私はXDocumentを持っています... – tweetypi

+0

私は返信を更新しました –

+0

別の場所に詰まって、私の質問を更新しました... – tweetypi

関連する問題