PDA

View Full Version : تبدیل اطلاعات HTML به XML?



AlirezaBahredar
شنبه 23 شهریور 1387, 14:26 عصر
با سلام....
آیا این امکان وجود داره؟
سوالم رو واضحتر بیان می کنم.من یک فایل HTML دارم که حاوی یک Grid هست که تعدادی ستون اطلاعاتی داره.حالا من می خوام بوسیله برنامه خودم این اطلاعات رو که تو Gridهست به یک فایل XML تبدیل کنم.میخواستم اصولا امکان پذیر هست این روند؟ اگر خیر بدون پردازش زیاد(بررسی خط به خط) چجوری می تونم اطلاعات داخل این Gridرو بدست بیارم؟
با تشکر.

vcldeveloper
شنبه 23 شهریور 1387, 16:13 عصر
اصولا امکان پذیر هست این روند؟
چرا نباشه؟!

چجوری می تونم اطلاعات داخل این Gridرو بدست بیارم؟
از طریق یک HTML DOM، مثلا کنترل WebBrowser در دلفی خودش یک HTML DOM دخلی داره که تمام المان های کد HTML را بصورت یک ساختار سلسله مراتبی بر میگردونه.
بعد از خواندن داده از HTML هم تبدیلش به XML کار خاصی نداره، هم میشه از XML DOM استفاده کرد (مثلا XMLDocument در دلفی)، هم تگ ها را مستقیما در یک StringList نوشت و بصورت یک فایل XML ذخیره کرد.

amin_alexi
شنبه 23 شهریور 1387, 16:13 عصر
سلام
منظورتون از Grid در Html همون Table هست !؟
اگه آره خط به خط بايد بخونيد و به Tag مربوطه كه رسيديد (Table) بايد شروع به خواندن اطلاعات كنيد ...
بعد از تگ Table دنبال تگ هايtr و td بگردين و اينجاست كه درده سرتون شروع ميشه ! (مخصوصا وقتي كه در داخل اين تگ ها تگهاي مربوط به Font يا رنگ يا ... باشه ؟)
ولي اگه بتونيد قالب ثابتي پيدا كنيد موفق ميشيد !؟
ديگه تبديل به XML كه خيلي راحتتر ميشه !!!!

AlirezaBahredar
یک شنبه 24 شهریور 1387, 09:03 صبح
علی آقا ممنون از راهنمایت...



از طریق یک HTML DOM، مثلا کنترل WebBrowser در دلفی خودش یک HTML DOM دخلی داره که تمام المان های کد HTML را بصورت یک ساختار سلسله مراتبی بر میگردونه.
بعد از خواندن داده از HTML هم تبدیلش به XML کار خاصی نداره، هم میشه از XML DOM استفاده کرد (مثلا XMLDocument در دلفی)، هم تگ ها را مستقیما در یک StringList نوشت و بصورت یک فایل XML ذخیره کرد.
فقط امکان داره بگی از کدام خصوصیت webbrowser باید استفاده کنم؟Document ؟
ممنون...

vcldeveloper
یک شنبه 24 شهریور 1387, 15:40 عصر
از کدام خصوصیت webbrowser باید استفاده کنم؟Document ؟
از Document با استفاده از اینترفیس های IHtmlDocument2 و IHtmlDocument3 می تونید استفاده کنید. توضیحات مربوط به این دو اینترفیس در MSDN هست.
اگر نمی خواید خودتون مستقیما درگیر بشید، مجموعه کامپوننت رایگان EmbeddedWeb هم یک کامپوننت IEParser داره که مثل WebBrowser از IE برای Parse کردن استفاده میکنه. نحوه کارش به این صورت هست که برای هر تگ HTML ایی که در فایل پیدا میکنه، رویدادی را فراخوانی میکنه و مشخصات اون تگ را در اون رویداد بر میگردونه.

غیر از اینها، می تونید از Parserهایی که برپایه IE نیستند هم استفاده کنید.
یکی از اینها DIHtmlParser (http://www.yunqa.de/delphi/doku.php/products/htmlparser/index?DokuWiki=ta49fgkmo7s1l7gb9i1u5ehls3)هست که امکانات بسیار خوبی داره، همین شرکت DITidy (http://www.yunqa.de/delphi/doku.php/products/tidy/index?DokuWiki=ta49fgkmo7s1l7gb9i1u5ehls3)را هم عرضه میکنه که قابلیت هاش کمتر از DIHtmlParser هست. DITidy برای اجرا نیاز به هیچ فایل جانبی نداره و با فایل EXE کامپایل میشه، ولی نمیدونم DIHtmlParser هم این قابلیت رو داره، یا نیاز به DLL در هنگام اجرا داره. هر دو را می تونید از سایت شرکت بصورت رایگان، ولی بدون سورس دانلود کنید. به همراه هر کدوم تعدادی Demo و یک فایل Help هست. اگر بخواید قانونی باهاشون کار کنید، باید در صورت انتشار برنامه تون، این Parserها را رجیستر کنید. البته توی ایران معمولا کسی به این مسائل لیسانس ها توجه نمیکنه و ازشون همینطوری استفاده میکنه.

اگر بخواید Parser ساده تر ولی همراه با سورس داشته باشید، HTMLP (http://htmlp.sourceforge.net/)هست. کار باهاش آسون هست، یک دمو هم داره، البته به نظرم، باید بجای تعریف کلاس ها به اون شکل، از اینترفیس استفاده می کرد. شاید خودم بعدا سورسش را تغییر دادم و اینجا گذاشتم.

غیر از این، چند تا سورس HTML Parser دیگه هم هست، ولی من که چندتاشون رو دیدم، ازشون خوشم نیومد.

mari2011
سه شنبه 12 اردیبهشت 1391, 10:37 صبح
میشه لطفا library را معرفی کنید که به زبان C++ نوشته شده باشه؟