<?xml version="1.0" encoding="utf-8"?>
<ResultSet>
<xs:schema id="ResultSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
<xs:element name="ResultSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="papers_title" msdata:Caption="标题" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_grade" msdata:Caption="级别" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_keywords" msdata:Caption="关键词" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_keywords_2" msdata:Caption="英文关键词" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_contents" msdata:Caption="CHS摘要" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_contents_2" msdata:Caption="EN摘要" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="bigclass_id" msdata:Caption="大类" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="smallclass_id" msdata:Caption="小类" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema> <Table>
<papers_title>淬火冷却过程三维有限元模拟及工艺参数优化的研究</papers_title>
<papers_grade>博士</papers_grade>
<papers_keywords>淬火;三维有限元法;模拟;换热系数;反传热分析;优化;</papers_keywords>
<papers_keywords_2>quenching;three-dimensional finite element method;</papers_keywords_2>
<papers_contents>淬火作为改变和提高材料性能的重要手段,在汽车、航空、运输、建筑及其他制造业领域有着广泛而重要的应用。</papers_contents>
<papers_contents_2>As a significant means to change and improve the performance of materials, quenching is used widely in the manufacturing field, such as automobiles, aviation, transportation, and building. </papers_contents_2>
<bigclass_id>工业技术</bigclass_id>
<smallclass_id>金属学与金属工艺</smallclass_id>
</Table>
<Table>
<papers_title>SHP2在幼鼠细菌性脑膜炎中的表达及原钒酸钠对脑膜炎脑损害的影响</papers_title>
<papers_grade>博士</papers_grade>
<papers_keywords>细菌性脑膜炎;蛋白酪氨酸磷酸酶;SHP2;原钒酸钠;肿瘤坏死因子;</papers_keywords>
<papers_keywords_2>Bacterial meningitis;Protein tyrosine phosphatase;SHP2;Sodium orthovanadate;TNF-alpha;</papers_keywords_2>
<papers_contents>研究背景;细菌性脑膜炎,也称化脓性脑膜炎,是一种严重危害儿童和成人健康的感染性疾病。</papers_contents>
<papers_contents_2>Background:Bacterial meningitis,aslo named purulent meningitis,is an important infectious disease that threatens lives of children and dults. </papers_contents_2>
<bigclass_id>医药、卫生</bigclass_id>
<smallclass_id>儿科学</smallclass_id>
</Table>
</ResultSet>
我想在C#中的WINFORM中循环把所有Table节点的papers_title,papers_grade,papers_keywords,papers_keywords_2,papers_contents,papers_contents_2,bigclass_id,smallclass_id这些字段的值存到数据库中.请各位给点例子吧,我实在是晕了,读出来数据都是乱的.我的结果应该是这样的
1 papers_title的值 papers_grade的值 papers_keywords的值 papers_keywords_2的值 papers_contents的值 papers_contents_2的值 bigclass_id的值 smallclass_id的值
2 papers_title的值 papers_grade的值 papers_keywords的值 papers_keywords_2的值 papers_contents的值 papers_contents_2的值 bigclass_id的值 smallclass_id的值
然后把读出来的第1条和第2条的值存到数据库, 谢谢
<ResultSet>
<xs:schema id="ResultSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
<xs:element name="ResultSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="papers_title" msdata:Caption="标题" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_grade" msdata:Caption="级别" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_keywords" msdata:Caption="关键词" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_keywords_2" msdata:Caption="英文关键词" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_contents" msdata:Caption="CHS摘要" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="papers_contents_2" msdata:Caption="EN摘要" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="bigclass_id" msdata:Caption="大类" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
<xs:element name="smallclass_id" msdata:Caption="小类" msprop:FieldUnique="True" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema> <Table>
<papers_title>淬火冷却过程三维有限元模拟及工艺参数优化的研究</papers_title>
<papers_grade>博士</papers_grade>
<papers_keywords>淬火;三维有限元法;模拟;换热系数;反传热分析;优化;</papers_keywords>
<papers_keywords_2>quenching;three-dimensional finite element method;</papers_keywords_2>
<papers_contents>淬火作为改变和提高材料性能的重要手段,在汽车、航空、运输、建筑及其他制造业领域有着广泛而重要的应用。</papers_contents>
<papers_contents_2>As a significant means to change and improve the performance of materials, quenching is used widely in the manufacturing field, such as automobiles, aviation, transportation, and building. </papers_contents_2>
<bigclass_id>工业技术</bigclass_id>
<smallclass_id>金属学与金属工艺</smallclass_id>
</Table>
<Table>
<papers_title>SHP2在幼鼠细菌性脑膜炎中的表达及原钒酸钠对脑膜炎脑损害的影响</papers_title>
<papers_grade>博士</papers_grade>
<papers_keywords>细菌性脑膜炎;蛋白酪氨酸磷酸酶;SHP2;原钒酸钠;肿瘤坏死因子;</papers_keywords>
<papers_keywords_2>Bacterial meningitis;Protein tyrosine phosphatase;SHP2;Sodium orthovanadate;TNF-alpha;</papers_keywords_2>
<papers_contents>研究背景;细菌性脑膜炎,也称化脓性脑膜炎,是一种严重危害儿童和成人健康的感染性疾病。</papers_contents>
<papers_contents_2>Background:Bacterial meningitis,aslo named purulent meningitis,is an important infectious disease that threatens lives of children and dults. </papers_contents_2>
<bigclass_id>医药、卫生</bigclass_id>
<smallclass_id>儿科学</smallclass_id>
</Table>
</ResultSet>
我想在C#中的WINFORM中循环把所有Table节点的papers_title,papers_grade,papers_keywords,papers_keywords_2,papers_contents,papers_contents_2,bigclass_id,smallclass_id这些字段的值存到数据库中.请各位给点例子吧,我实在是晕了,读出来数据都是乱的.我的结果应该是这样的
1 papers_title的值 papers_grade的值 papers_keywords的值 papers_keywords_2的值 papers_contents的值 papers_contents_2的值 bigclass_id的值 smallclass_id的值
2 papers_title的值 papers_grade的值 papers_keywords的值 papers_keywords_2的值 papers_contents的值 papers_contents_2的值 bigclass_id的值 smallclass_id的值
然后把读出来的第1条和第2条的值存到数据库, 谢谢
DataSet ds = new DataSet();
ds.ReadXML("info.xml");
//循环手工插入,或做对比更新
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"d:\a.xml");
XmlNode root = xmlDoc.SelectSingleNode("ResultSet");
foreach (XmlNode xn in root.ChildNodes)
{
if (xn.Name == "Table")
{
foreach (XmlNode xn_sub in xn.ChildNodes)
{
//这里可以用xn_sub.Name来找你要的节点。
MessageBox.Show(xn_sub.InnerText);
}
}
}
}
这样就行了。
楼主是把xml数据写进数据库中!!
再写入数据库就很简单了呀。
我能这么写吗?
//这里可以用xn_sub.Name来找你要的节点。
if (xn_sub.Name == "papers_title")
{
MessageBox.Show(xn_sub.InnerText);
break;
}可是怎么不弹出消息框呢?还是读的慢?
string fileName = this.TB_XML.Text.ToString();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNode root = xmlDoc.SelectSingleNode("ResultSet");
foreach (XmlNode xn in root.ChildNodes)
{
if (xn.Name == "Table")
{
string InsertCommand = "Insert into xmltodb(xmltodb.Title, xmltodb.Leve, xmltodb.Tag, xmltodb.Tag_en, xmltodb.Memo_cn, xmltodb.Memo_en, xmltodb.Big_txt, xmltodb.Small_txt) Value(";
string Title = "", Leve = "", Tag = "", Tag_en = "", Memo_cn = "", Memo_en = "", Big_txt = "", Small_txt = "";
foreach (XmlNode xn_sub in xn.ChildNodes)
{
//这里可以用xn_sub.Name来找你要的节点。
switch (xn_sub.Name)
{
case "papers_title":
{
Title = xn_sub.InnerText;
break;
}
case "papers_grade":
{
Leve = xn_sub.InnerText;
break;
}
case "papers_keywords":
{
Tag = xn_sub.InnerText;
break;
}
case "papers_keywords_2":
{
Tag_en = xn_sub.InnerText;
break;
}
case "papers_contents":
{
Memo_cn = xn_sub.InnerText;
break;
}
case "papers_contents_2":
{
Memo_en = xn_sub.InnerText;
break;
}
case "bigclass_id":
{
Big_txt = xn_sub.InnerText;
break;
}
case "smallclass_id":
{
Small_txt = xn_sub.InnerText;
break;
}
}
}
InsertCommand = InsertCommand + Title.ToString() + Leve.ToString() + Tag.ToString() + Tag_en.ToString() + Memo_cn.ToString() + Memo_en.ToString() + Big_txt.ToString() + Small_txt.ToString() + ")";
MessageBox.Show(InsertCommand);
InsertCommand = ""; }
}