このようなXMLファイルを取得しました。
Parent
-Value
-Value
-Child
--Value
--Value
---Grandchild
----Value
---GrandchildEND
-ChildEND
-Value
-Child2
......
XMLファイルの構造は可変です。各XMLに異なる子、孫などがあることを意味します。XMLファイルを開き、XMLファイルからMYSQLデータベースにデータを入力したいと思います。
ここでは、XMLを開いてMySQLに情報を入力するために使用するコードを示します。
while (hardcore < 50000)
{
try
{
XDocument xmlDoc2 = XDocument.Load("c:\\a.xml");
var simpleQuery2 = (from Mainparent in xmlDoc2.Descendants("Mainparent")
select Mainparent).FirstOrDefault();
dbcon.Insert
(
simpleQuery2.Element("id").Value,
simpleQuery2.Element("action").Value,
simpleQuery2.Element("ordernr").Value,
simpleQuery2.Element("typ").Value,
simpleQuery2.Element("orderdate").Value,
simpleQuery2.Element("p4code").Value,
simpleQuery2.Element("runtime").Value,
);
}
catch (NullReferenceException)
{
textBox1.Text = "did a stupid mistake mofo";
}
hardcore++;
}
「simpleQuery2.Element( "id")。Value」からの情報は、MainParentに格納されている値です。
私の問題は今です:
どのvalues/children /grandchilds..がXMLファイル内にあるかわかりません。したがって、MySQLに正常にインポートするには、すべての要素を1つずつインポートする必要があります。そうしないと、エラーが発生し、インポートが機能しません。
親/値名/値または親/子/値名/値を知る必要があります。これは、Parent / Valuename / Valueがテーブル「PARENT」にインポートされ、Parent / Child / Valuename/valueがテーブル「CHILD」にインポートされるためです。
どの子/孫が何であるかを知っている場合、私はどのような価値を期待するかを知っています。
私はすでに要素の完全なリストを次のように取得できます:
XDocument xmlDoc2 = XDocument.Load("c:\\a.xml");
foreach (var name in xmlDoc2.Root.DescendantNodes().OfType<XElement>()
.Select(x => x.Name).Distinct())
{ textBox1.Text = textBox1.Text + "\r\n"+name; }