Versuchen Sie dies so etwas wie - die Verbindungszeichenfolge und Abfrage an Ihre eigene die erste Methode wird die XML-Zeichenfolge aus der Datenbank laden (neu einstellen Datenbank, Server, Tabelle, Spaltennamen) und die zweite Methode wird die XML-Zeichenfolge geladen aus der Datenbank in eine Liste von Attributnamen basierend auf der Antwort, die Sie bekommen für Ihre vorherige Frage analysieren:
static void Main(string[] args)
{
string xmlContent = GrabStringFromDatabase(1);
List<string> attributeNames = ParseForAttributeNames(xmlContent);
Console.WriteLine("Your XML attributes are: {0}", string.Join(",", attributeNames.ToArray()));
}
private static string GrabStringFromDatabase(int ID)
{
string result = string.Empty;
string connection = "server=(local);database=test;integrated security=SSPI";
string query = "SELECT XmlContent FROM dbo.TestXml WHERE ID = @ID";
using(SqlConnection _con = new SqlConnection(connection))
using (SqlCommand _cmd = new SqlCommand(query, _con))
{
_cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
_con.Open();
result = _cmd.ExecuteScalar().ToString();
_con.Close();
}
return result;
}
private static List<string> ParseForAttributeNames(string xmlContent)
{
List<string> attributeNames = new List<string>();
XDocument xmlDoc = XDocument.Parse(xmlContent);
var nodeAttrs = xmlDoc.Descendants().Select(x => x.Attributes());
foreach (var attrs in nodeAttrs)
{
foreach (var attr in attrs)
{
attributeNames.Add(attr.Name.LocalName);
}
}
return attributeNames;
}
Haben Hast du das nicht schon mal gefragt? http://stackoverflow.com/questions/4237327/getting-attributes-and-values-of-xml-using-c –
ja aber das war nicht die genaue Antwort, die mir hilft ... ich hoffe, ich könnte es klar machen jetzt – salman
Salman Ihre Xml ist nicht im richtigen Format, '' sollte am Ende sein, Sie können 'attr.Value' in dem Code, den ich für Sie veröffentlicht, wenn Sie Ihre aktuelle XML-Problem beheben, erhalten Sie' ba, bb , bc, bd' sollten Sie auch zusätzliche Ausgänge entfernen. –