SqlConnection str = new SqlConnection("server=.;database=db_test;Trusted_Connection=true");
string str1 = "select 雇员ID,姓氏,头衔 from student";
str.Open();
DataSet dt = new DataSet();
SqlDataAdapter da1 = new SqlDataAdapter(str1, str);
da1.Fill(dt);
dt.WriteXmlSchema("C:\\ttt.xml");
//dt.WriteXml("C:\\tt.xml");
Console.Write("OK!");
str.Close();
得到如下的代码:<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" 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="雇员ID" type="xs:short" minOccurs="0" />
<xs:element name="姓氏" type="xs:string" minOccurs="0" />
<xs:element name="头衔" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
请大家指点下,如何才能获取到雇员ID、姓氏、头衔这些属性。以及如何获取他们的数据类型,如short、string
直接从DataSet中取不就可以了么?如果非要从xml中取,,如下
/// <summary>
/// 获取指定节点下面对应属性的值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <param name="attribute">节点对应的属性名称</param>
/// <returns></returns>
public static string GetNodeValue(string strFileName, string nodeName, string nodeDir, string attribute)
{
string value = null;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName); XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点 foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型 if (xe.Name == nodeName)
{
//value = xe.InnerText.Trim();
value = (xe).Attributes[attribute].Value;
break;
}
}
}
catch (Exception exp)
{
throw exp;
} return value;
}
2、也可以直接分析XMLusing System.Xml;
//...
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\ttt.xml"); XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
nsManager.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); XmlNodeList xmlNodeList = xmlDoc.DocumentElement.SelectNodes(@"//xs:sequence/xs:element", nsManager); Console.WriteLine("{0} nods founded",xmlNodeList.Count);
foreach (XmlNode node in xmlNodeList)
{
Console.WriteLine("Name={0} Type={1}", node.Attributes["name"].Value, node.Attributes["type"].Value);
}