PDA

View Full Version : parse xml



kitten
شنبه 27 اسفند 1390, 08:14 صبح
سلام دوستان
من یه سری اطلاعات xml دارم که به صورت زیر هستند و حالا می خوام اطلاعات اینها را ازشون بکشم بیرون می تونیم از QXmlPatterns library که در کیوت هست استفاده کنم؟چجورری؟



<key xsi:type="xsd:string">message</key><value xsi:type="xsd:string">Username or/and Password doesnt match.</value>

sd.CSharpProgrammer
شنبه 27 اسفند 1390, 22:49 عصر
میتونی از DOM استفاده کنی. خوبیش اینه که اطلاعات فایلت رو بشکل درختی (tree) در اختیارت قرار میده.
البته شنیدم سرعتش از بقیه روشها کندتره ولی مشغول نوشتن برنامه ای هستم که با حجم زیادی از اطلاعات xml کار میکنه و از DOM استفاده کردم. نه تنها کند کار نمیکنه بلکه سرعت فوق العاده ای هم داره.

kitten
شنبه 27 اسفند 1390, 23:06 عصر
میشه یه قطعه کد واسم بنویسی اخه من تونستم قسمت message را بگیرم ولی اون قسمت دوم یعنی value را نتونستم بگیرم

حامد مصافی
یک شنبه 28 اسفند 1390, 00:23 صبح
فرض کنیم این متن در یک textBrowser قرار داده شده و شما می‌خواهید مقادر را در دو برچسب نمایش دهید


QDomDocument doc("ReportDocument");
doc.setContent(textBrowser->toPlainText());

QDomElement el = doc.firstChildElement("ol").firstChildElement("li");

label->setText(el.firstChildElement("key").text());
label_2->setText(el.firstChildElement("value").text());

kitten
یک شنبه 28 اسفند 1390, 08:09 صبح
بله خودمم همین شکل نوشته بودم تقریبا
ولی مشکل اینجاست که متن value گرفته نمیشه

حامد مصافی
یک شنبه 28 اسفند 1390, 09:51 صبح
اما در مثال من بدون مشکل کار می‌کنه