0

この xml を読み込んでリストに変換し、データベースに挿入したい

助けてください

<?xml version="1.0" encoding="UTF-8"?>
-<xml>-<records>-<record><database path="J:\EndNote\PA-03\1.enl" name="1.enl">1.enl</database><source-app name="EndNote" version="14.0">EndNote</source-app><rec-number>38</rec-number>-<foreign-keys><key db-id="r50aeetv1taarsewtwsvrr2h2wtzde5z25pp" app="EN">38</key></foreign-keys><ref-type name="Journal Article">17</ref-type>-<contributors>-<authors>-<author><style size="100%" font="default" face="normal">Patrick Carpenter</style></author></authors></contributors>...

私のxmlスキーマ

編集:

エクスポートされた EndNote 用

とても面倒で、うまくいきません

これをチェックしてください

完全な xml リンク

4

2 に答える 2

2

これを行う最も簡単な方法は、xsd.exe を使用してシリアル化クラスを生成することです。

1) スキーマ定義を生成する

xsd file.xml [/outputdir:directory]

xml サプライヤにすでに xsd スキーマがある場合 (サンプル xml には、使用される xsd スキーマが定義されていない場合)、この手順は必要ありません。

2) xsd スキーマからクラスを生成します。

xsd file.xsd {/classes | /dataset} [/element:element]
         [/language:language] [/namespace:namespace]
         [/outputdir:directory] [URI:uri]

3) xml シリアライザーを使用して、生成されたクラスから逆シリアル化します。

http://msdn.microsoft.com/en-us/library/dsh84875.aspx
于 2012-07-25T07:14:20.973 に答える
1

次のような XML コンテンツのモデルのクラスを作成します。

class Records
{
    public List<Record> records { get; set }
}

class Record
{
    public RecordDatabase database { get; set }
    ...
    public int rec_number { get; set }
    ...
}

class RecordDatabase
{
    public string path { get; set }
    public string name { get; set }
}

...

次に、XML ファイルをオブジェクトに逆シリアル化できます。

Records records = null;
string path = "importfile.xml";
XmlSerializer serializer = new XmlSerializer(typeof(Cars[]));
StreamReader reader = new StreamReader(path);
reader.ReadToEnd();
records = (records)serializer.Deserialize(reader);
reader.Close();
于 2012-07-25T07:22:45.170 に答える