PDA

View Full Version : خواندن XML با فرمت زیر



eyes_shut_number1
شنبه 01 خرداد 1389, 08:55 صبح
سلام دوستان میخوام یک فایل xml با این فرمت رو بخونم.
نیاز دار برای هر سطر محتوی و خصوصیت (attribute and content) رو بخونم

فرمت به شکل زیر هستش. اگه راهنماییم کنید ممنون میشو;


<?xml version="1.0" encoding="UTF-8"?>
<Hashtable xmlns="http://localhost/Schemas/HashtableSchema.xsd">
<row name="fajralcohol.com">
<Hashtable xmlns="http://localhost/Schemas/HashtableSchema.xsd">
<row name="status">error</row>
<row name="error">Text Of Error</row>
<row name="test">this is a test</row>
<row name="data">this is a data</row>

</Hashtable>
</row>
</Hashtable>

Behrouz_Rad
شنبه 01 خرداد 1389, 12:13 عصر
در متنی که قرار دادی namespace وجود داره. در XLINQ برای تعامل با namespace ها از کلاس XNamespace استفاده میشه.
چون در ابتدای متن از namespace استفاده شده، نمیشه از کلاس XElement استفاده کرد و باید از ابتدا با XDocument در Node ها حرکت کنی... یک مثال نمونه به شکل ذیل واست نوشتم:



XDocument doc = XDocument.Load(Path.Combine(Server.MapPath("."), "XMLFile.xml"));
XNamespace ns = "http://localhost/Schemas/HashtableSchema.xsd";
var elements = from elem in doc.Elements(ns + "Hashtable").Elements(ns + "row").Elements(ns + "Hashtable").Elements()
select elem;

Array.ForEach(elements.ToArray(), n =>
{
Response.Write(
"name attribute: " + n.Attribute("name").Value +
"<br />" +
"value: " + n.Value +
"<br />-------------------<br />");
});

موفق باشید.