2017-05-09 33 views
1

こんにちは、みんなXDocumentからXmlDocumentに変換しようとしています(私はXmlDocumentで必要です)。変更が必要なさまざまな方法について考えていますか?私はXmlDocumentクラスとXElementクラスでそれらのいくつかを探しましたが、私の変更はコンパイルされませんでした。XDocumentコードをXmlDocumentに変換する

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 
using System.Data; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument doc = XDocument.Load(FILENAME); 
      XElement root = (XElement)doc.FirstNode; 

      DataTable dt = new DataTable(); 
      dt.Columns.Add("Parent", typeof(string)); 
      dt.Columns.Add("Child", typeof(string)); 
      dt.Columns.Add("Attribute", typeof(string)); 
      dt.Columns.Add("Value", typeof(string)); 

      foreach(XElement parent in root.Elements()) 
      { 
       string parentTag = parent.Name.LocalName; 

       foreach (XElement child in parent.Elements()) 
       { 
        string childTag = child.Name.LocalName; 

        foreach (XAttribute attribute in child.Attributes()) 
        { 
         dt.Rows.Add(new object[] { parentTag, childTag, attribute.Name, (string)attribute }); 
        } 
       } 
      } 
     } 
    } 
} 

おかげ

+0

ライブラリはかなり異なっていますが、インテリセンスで何を指示するのかを見るだけで、このコードをリファクタリングするのに時間がかかりません。 – Enigmativity

+3

なぜ変換が必要ですか? – jdweng

答えて

0

のではなく、新たなXmlDocumentに最終XDocumentを読まない理由は、既存のコードベースを、リファクタリング?

XDocument xDocument = 
    XDocument.Load("file.xml"); 

...other manipulations... 

XmlDocument xmlDocument = 
    new XmlDocument(); 

// Read the XDocument as a simple XML string: 
xmlDocument.LoadXml(xDocument.ToString()); 

// Alternatively, read the XDocument with an XmlReader: 
xmlDocument.Load(xDocument.CreateReader()); 
関連する問題