我想读取这个xml并将其转换为list以插入数据库
请帮助
<?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>...
编辑:
用于导出的EndNote
它太乱了,它没有做到这一点
请检查
答案 0 :(得分:2)
最快的方法是使用xsd.exe生成序列化类:
1)生成模式定义
xsd file.xml [/outputdir:directory]
如果xml供应商已经全部使用了xsd模式(示例xml没有定义任何已使用的xsd模式),则不需要此步骤。
2)从xsd schema生成类:
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
答案 1 :(得分: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();