تحويل منhtml الى text

أرسل من قبل master في الثلاثاء, 2004/04/13 - 5:06pm.

تاريخ التسجيل: 2004-03-10
مشاركات: 22

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة برمجيات

كيف يمكن قراءة تنسيقات نص والية حفظها عند قراءتها من ملف الhtml Confused:

 
دخول أو تسجيل لإرسال التعليقات | قراءة: 1108

خيارات عرض التعليقات

اختر طريقتك المفضلة لعرض التعليقات و اضغط "حفظ الإعدادات" لتفعيل تغييراتك.
الثلاثاء, 2004/04/13 - 10:13pm
عضو فعال
صورة PRODRiVER

تاريخ التسجيل: 2004-03-03
مشاركات: 451

الجامعة: تشرين
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة شبكات

أهلا ماستر...

واجهتني نفس المشكلة بدلفي... لمن بجيب نص الرسالة من البريد الالكتروني بتجي ككود HTML لهيك في Component إضافي على دلفي اسمه ThtmlLite مجاني بتعطيه كود ال HTML وهو بينفذه..
وهيدا ملف ال Component :

http://pbear.com/htmllite76.zip

وهيدا موقعه :

http://pbear.com/htmlviewers.html

هيدا يللي فيني أخدمك فيه بدلفي...

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2004/04/13 - 10:53pm
مدير
صورة أيمن

تاريخ التسجيل: 2004-01-24
مشاركات: 2798

الجامعة: تشرين
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة برمجيات

ممكن تشرح اكتر شو اللي عم تحاول تعملو، و اذا عم تبرمج شي، شو هي لغة البرمجة اللي عم تستعملا، هيك ممكن نساعدك اكتر.

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2004/04/14 - 10:22am
عضو فعال
صورة Firas

تاريخ التسجيل: 2004-02-27
مشاركات: 1477

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: ذكاء صنعي

our problem is just 2 convert from HTML Formate to TEXT format??? Very Happy

MR.PRODRiVER
Can your Component Helpe Us in this problem Crying or Very sad ??

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2004/04/14 - 10:26am

تاريخ التسجيل: 2004-03-30
مشاركات: 4

شكرا كتير لكل يلي حاول يساعدني
الفكرة باختصار أنو نحن عنا ملف html مكتوب فيه نص عليه تنسيقات معينة ... الشي المطلوب أنو نستخرج هالنص ونحتفظ بتنسيقاته بطريقة ما ونكتب هالنص ضمن ملف text ..
الهدف من حفظ النتسيقات أنو نقدر نجري العملية المعاكسة أي اعدة بناء ملف html من ملف text مع التنسيقات الأصلية ...

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2004/04/14 - 10:37am

تاريخ التسجيل: 2004-03-10
مشاركات: 22

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة برمجيات

الفكرة متل ماقالت rola تماما
بس في شغلة انو نحن ما بنقدر نستعمل component جاهز لان المطلوب كتابة خوارزمية تقوم بالشي يلي سبق .....

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2004/04/14 - 1:44pm
عضو فعال
صورة PRODRiVER

تاريخ التسجيل: 2004-03-03
مشاركات: 451

الجامعة: تشرين
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة شبكات

كتب فراس:
our problem is just 2 convert from HTML Formate to TEXT format??? Very Happy

MR.PRODRiVER
Can your Component Helpe Us in this problem Crying or Very sad ??

يا أخي فراس ال Component هيدا شغلتو بس تعطيه كود ال HTML وهو بيعرض الناتج فقط وما فينه يحفظ الناتج بشي ملف أو يعدل عليه أي تعديل... يعني باختصار ( HTML Viewer Only ). Rolling Eyes

كتب master:
الفكرة متل ماقالت rola تماما
بس في شغلة انو نحن ما بنقدر نستعمل component جاهز لان المطلوب كتابة خوارزمية تقوم بالشي يلي سبق .....

يعني بدك أنت تحلل نص كود ال HTML وتقوم بإظهار الناتج، فبعتقد أنو لازم تعالج كل HTML Standard Tags ضمن الكود تبعك... عملية صعبة بس حسب ما فهمت من مادة الاتومات لهلق أنو فيك تعمل هيك شيء يعني مفسر لكود ال HTML بس كيف هيدا موجود في السنة الرابعة مادة المترجمات...

ما بعرف إذا كان في حكي شي غلط...

شو رأي الشباب... Cool

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2004/04/14 - 9:13pm
مدير
صورة أيمن

تاريخ التسجيل: 2004-01-24
مشاركات: 2798

الجامعة: تشرين
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة برمجيات

شو التنسيقات اللي بدكون تحتفظوا فيا بالتحديد بملف الـtxt؟ التحكم بحجم الخط او لونو ما ممكن بملف txt مثلا، اما الجداول ممكن تحويلا بين txt و html يشوية شغل.

انا رأيي اول الكل تحددوا الـtags اللي بدكون تدعموا ببرنامجكون.

 
دخول أو تسجيل لإرسال التعليقات
الخميس, 2004/04/15 - 5:04am
مدير
صورة nawwar

تاريخ التسجيل: 2004-01-24
مشاركات: 558

الجامعة: حلب
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

إذا كان المطلوب كتابة خوارزمية من الصفر دون استخدام أي مكتبات إضافية فالشغلة صعبة، متل ما قال PRODRiVER أنتوا بحاجة لاستخدام الاوتومات و تحديداً التعابير المنتظمة Regular Expressions و كتير لغات بتدعم التعابير المنتظمة متل Perl (يمكن أفضل الشي من هالناحية) وممكن كمان NET.(تحوي مكتبة كاملة عن regular expressions هي System.Text.RegularExpressions) وكمان Java تحوي حزمة عنها java.util.regex ...

بس كمان ممكن حتى تسهلوا الشغل عليكم أنو تستعينوا بتقنية DOM لفتح مستندات متل الhtml و هالتقنية قياسية مدعومة بكتير لغات برمجة و بتسمح لك التجوال ضمن عناصر ملف html وقراءة محتويات كل عنصرelement (يعني tag)
مثلاُ بال Java استخدموا حزمة org.w3c.dom.html
بال NET. ممكن استخدام ال mshtml namespace الموجود ضمن الاسمبلي Microsoft.mshtml.dll

لسا لو كان ممكن تحويل ملفات ال html إلي ملفات xml (أو ممكن xhtml)(ما بعرف إذا ممكن) بتصير الشغلة سهلة و ديناميكية كتير، حيث يمكن استخدام تحويلات الxsl transforms لتحويلها إلى أنواع أخرى من الملفات (نصية بتسيقك الخاص مثلاُ ، html، تنسق اخر منxml، أو حتى pdf...) وممكن حفظ تنسيق الملف الأساسي ضمن ملفDTD أو xsd لإعادة بناء الملف مرة أخرى بسهولة...

 
دخول أو تسجيل لإرسال التعليقات
الخميس, 2004/04/15 - 11:13pm
عضو فعال
صورة Firas

تاريخ التسجيل: 2004-02-27
مشاركات: 1477

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: ذكاء صنعي

المشرفين مو عارفين شو بدون بس بيعرفو أنو المطلوب تحويل ملف Html الى ملف text و طبعاً سنقوم بالاستغناء عن الكثير من تنسيقات الhtml .
Crying or Very sad

 
دخول أو تسجيل لإرسال التعليقات
الجمعة, 2004/04/16 - 12:45am
مدير
صورة nawwar

تاريخ التسجيل: 2004-01-24
مشاركات: 558

الجامعة: حلب
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

أنا كل اللي فهمته أنو المطلوب تحويل الكود التالي مثلاُ

<html>
 <body bgcolor=cyan>
  <p> Hello World </p>
  <p>
  <ul>
   <li>hi
   <li>hello</li>
   <li>salut
  </ul>
 </body>
</html>

إلى مثلاُ (لاحظوا التنسيق الضعيف للملف السابق لكنه مع ذلك ملف html صالح!!)

Hello World
-hi
-hello
-salut

بس أنا بفضل أعرف بالتفصيل أكتر شو هدفكم من هالعملية، يعني مثلاُ إعادة بناء ملف html من ملف نصي عملية صعبة شوي لأنو المطلوب أنو الملف النصي نفسه يكون بتنسيق معين لمعرفة كل مقطع أو جملة وين كانت موجودة (ضمن أي tag) و ماهي خصائص ال tag هل المطلوب استعادة الألوان مثلاُ و الخطوط... إلخ ،
يعني إذا بتعطونا أمثلة أوضح بكون أحسن، لأنو مثلاً عندي إحساس أنو مشروعكم بنحل بسهولة باستخدام تقنيات الxml

 
دخول أو تسجيل لإرسال التعليقات
الجمعة, 2004/04/16 - 9:02pm
عضو فعال
صورة PRODRiVER

تاريخ التسجيل: 2004-03-03
مشاركات: 451

الجامعة: تشرين
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة شبكات

كتب nawwar:
عندي إحساس أنو مشروعكم بنحل بسهولة باستخدام تقنيات الxml

ممكن تفصيل أكثر شو هي هالتقنيات... Shocked

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2004/04/17 - 1:38am
مدير
صورة همام

تاريخ التسجيل: 2004-01-24
مشاركات: 1934

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: هندسة شبكات

المطلوب فصل ملف html الى ملفين
الأول ملف يحوي الكتابة فقط وهو ملف txt
والثاني يحوي الترميز وهو أيضاً txt

على كل يلي بدو master يعرفه هو كيف يمكننا أخذ ملف html مع ال tags باستعمال لغات البرمجة
مو هيك master

デスノート

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2004/04/17 - 2:24am
مدير
صورة nawwar

تاريخ التسجيل: 2004-01-24
مشاركات: 558

الجامعة: حلب
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

شو هي تقنيات الxml ؟ طيب هاد هو الجواب!:
أولاً لغة الxml - extensible markup language هي لغة شبيهة بال html من ناحية استخدامها للtags لكنها تتختلف عنها بأنها لا تحدد tags معينة مثل html,head,body,p (وتسمى الtags أيضاً عناصراً elements)...و بعبارة ثانية لا توجد كلمات محجوزة للغة وإنما بإمكانك مثلاً تحديد العناصر tags الخاصة بك . لهذا هي لغة قابلة للتوسع ...كما أنه يوجد قاعدتين للغة xml
1- كل مستند xml يحوي على جذر واحد فقط (عنصر أو عقدة واحدة تحوي بداخلها عدد غير محدد من العقد) (كما في الhtml يوجد جذر هو <html></html> )
2- كل tag يجب إغلاقها بعكس ال html التي ليس من الضروري إغلاق بعض tags (راجع المثال في الرد السابق)

مثال

<Library name="Nawwar's Library">
 <book isbn="123456">
  <title> Oracle 9i XML Handbook</title>
  <author fname="Ben" lname="Chang" />
  <author fname="Mark" lname="Scardina" />
 </book>
 <book>
  <title> XML Apps with ASP.NET </title>
 </book>
 <book isbn="4567895">
  <title> XML Web-services and server components</title>
  <author fname="Kenneth" lname="Lind" />
  <price unit="USD"> 45 </price>
 </book>
</Library>

الآن إذا حددت أسماء معينة للعناصر وواصفاتها attributes وترتيبها (هيكل المستند) تكون قد أنشأت أو اشتققت "لغة" جديدة تعتمد على xml، مثلاُ إذا حددت أن أسماء العناصر يجب أن تكون html,body,p,table....و أن html هو جذر المستند....إلخ تحصل على لغة ال xhtml التي ما هي إلا html بعد تطبيق قواعد xml (إغلاق جميع ال tags و جذر واحد للمستند..)
طبعاً ملف xml دون تحديد أسماء معينة للعناصر و هيكل الملف عديم الفائدة (لأن جميع العناصر تصبح متشابهة و لا معنى محدد لكل عنصر)، لذلك يجب تحديد شكل مستند الxml عن طريق إما ملف DTD أو ملف XSD، أو مخزن أسماء namespace معرف مسبقاً (كما هو الحال بالنسبة لمستندات xhtml مثلاُ)

تطبيقات الxml (و اللغات المرتبطة بها)
بسبب شكل xml القابل للتوسع فإن تطبيقاتها لانهائية... أما اللغات المتعلقة بها فهي
-DTD أي Document-Type Definition وهي إما نص مضمن ضمن ملف الxml أو ملف مستقل مرتبط معه، تحوي على تعريف العناصر وواصفاتها attributes و هيكل ملف الxml
-XSD أي XML-Schema Definition مثل السابقة لكنها الأحدث، و تتميز بإمكانية تحديد أنماط المعطيات لمحتويات العناصر وواصفاتها بأنماط قياسية محددة مثل integer,float,Date,String... كما أن ملف xsd هو ملف xml بحد ذاته من حيث التنسيق(و يستخدم مخزن أسماء قياسي) (يعني ال xsd مشتق من xml بعكس DTD)
الجدير بالذكر أن ملفات XSD يمكن تحويلها إلى صفوف classes ضمن بعض لغات البرمجة مثل Java و C# (صفوف تحوي متحولات أعضاء بنفس أسماء العناصر المعرفة ضمن ملف الxsd) كما أن تعريف غرض من هذه الصفوف يكافئ أنشاء ملف xml يحقق الشكل المحدد ضمن ملف الxsd و تقابل قيم المتحولات الأعضاء محتويات ملف الxml.. فمثلاً حساب المثال السابق و باستخدام ملف xsd مناسب بمكن كتابة ما يشبه البرنامج التالي للوصول إلى اسم الكتاب الثالث:

Library lib;
// load lib from library.xml
String s= lib.book[2].title;
float f= lib.book[2].price;

-XSL أي Extensible Stylesheet Language و هي لغة مشتقة من xml أيضاً (لها مخزن أسماء خاص بها) تستخدم لكتابة تحويلات XSL-Transformations XSLT التي تسمح بتحويل ملف xml إلى تنسيق إخر من الxml أو ممكن html أو حتى ملف pdf ...إلخ
مثلاً يمكن كتابة تحويل xslt يقوم بتحويل ملف xml إلى html بحيث محتويات الواصفة name للعنصر library تصبح محتويات العنوان title و كل كل عنصر book يحول إلى سطر في جدول أي tr ...إلخ..

تحويلات ال xslt يمكن تطبيقها على ملفات ال xml حصراً و بالتالي ملفات ال html لا يمكن تحويلها إلا إذا كانت منسقة بتنسيق xml أي xhtml (أي إغلاق جميع الtags)

أنا طرحت فكرة استخدام الxml لان كل المطلوب كتابة برنامج من بضعة أسطر (ربما سطر واحد فقط) بأي لغة برمجة لتطبيق تحويل XSLT على ملف الxml (أو xhtml) المصدر ، إضافة إلى كتابة ملف XSLT بسيط. و هذه العملية أسهل من كتابة برنامج معقد يقوم بالتجوال ضمن العناصر و اختبار نوعها وقراءة محتوياتها و محتويات الواصفات وإعادة كتابة البيانات على ملف نصي جديد بطريقة معينة لأن الطريقة الأخيرة صعبة التصحيح و التعديل و أعقد و أطول وقد ينتج عنها أخطاء كثيرة، أما باستخدام تحويلات XSLT من أجل تعديل التحويل يكفي تعديل ملف xslt من أي محررنصوص دون الحاجة لإعادة بناء البرنامج الأساسي...و حتى لو احتجتوا للتجوال ضمن ملف ال xml فهالشي سهل جداً باستخدام عدة طرق مثل DOM أو SAX... فال DOM (وهي قياسية مدعومة بمعظم لغات البرمجة) تقوم عند تحميل مستند xml بإنشاء شجرة تمثله في الذاكرة حيث تمثل كل عقدة عنصراً ضمن ملف xml و يمكن التجوال و إضافة و حذف و قراءة و كتابة العقد بسهولة بهذه الطريقة..
كما أنه إذا كان الملف الهدف بتنسيق xml فإن إعادة التحويل بالاتجاه المعاكس سهلة باستخدام ملف XSLT ثاني معاكس للأول ...أما إذا كان الملف الهدف ملفاً نصياً فقط، عندئذ نحتاج إلى برنامج بسيط لقراءة الملف النصي وإنشاء ملف xml أو xhtml باستخدام ال DOM...

سأقوم بكتابة أمثلة بسيطة عن ملفات xml و إجراء التحويلات عليها في رد لاحق إنشاء الله...

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2004/04/17 - 2:31am
مدير
صورة nawwar

تاريخ التسجيل: 2004-01-24
مشاركات: 558

الجامعة: حلب
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

كتب محمد همام:
المطلوب فصل ملف html الى ملفين
الأول ملف يحوي الكتابة فقط وهو ملف txt
والثاني يحوي الترميز وهو أيضاً txt
إذا كان هاد المطلوب فبعتقد أنو إعادة بناء ملف ال html من جديد مستحيل لأنو بدنا نعرف كل كلمة و نص ومقطع وين كان مكانهم ضمن الملف الأصلي، و هي بحد ذاتها بحاجة إلى بعض التنسيق ضمن أحد الملفين الناتجين

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2004/04/17 - 6:27pm
مدير
صورة nawwar

تاريخ التسجيل: 2004-01-24
مشاركات: 558

الجامعة: حلب
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات

مثال على استخدام تحويلات XSL Transfomations
كتبت هذا المثال ليقوم بتحويل ملف html يطبق قواعد xml (إغلاق جميع tags )، إلى ملف نصي يحوي فقط النصوص المرئية (لا يعرض مثلاً محتويات script )

ملف ال xsl هو بكل بساطة:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>

 <xsl:template match="*">
  <xsl:apply-templates select="text()|p|div|font|b|strong|(table/tr/td)|a" />
 <!-- add above whatever tags u want to show their text -->
 </xsl:template>

 <xsl:template match="html">
  <xsl:apply-templates select="body" />
 </xsl:template>

</xsl:stylesheet>

كمثال سنأخذ ملف ال html التالي:
انقر هنا و شاهد المصدر

الآن،عند تطبيق ال التحويل ينتج لدينا الملف النصي التالي

beginning of the body...
I am in a p
 I am in a div
 
 in a font in the div 
 I am in a cell in a table another cell and a hyperlink!

I am just in the body!

مو هاد هو المطلوب؟

أما كيفية استدعاء التحويل فهاذا عائد إلى لغة البرمجة المستخدمة، مثلاُ ضمن ال C# يمكن استخدام الكود البسيط التالي

using System.Xml.Xsl;
.
.
XslTransform xslt=new XslTransform();
xslt.Load("html2text.xsl");
xslt.Transform("source.html","output.txt");

حيث يقوم بتحويل ملف source.html إلى ملف نصي output.txt باستخدام التحويل html2text.xsl المكتوب سابقاً...
كمان إذا كنت منزل عندك oracle مثلاُ فيمكن استخدام أداة اسمها oraxsl لإجراء التحويل مباشرة كما يلي:

oraxsl source.html html2text.xsl output.txt

أما باستخدام ال Java الحقيقة يوجد عدة طرق بس الكود شوي أطول

 
دخول أو تسجيل لإرسال التعليقات
الأحد, 2004/06/06 - 6:39am

تاريخ التسجيل: 2004-06-05
مشاركات: 134

متل ما عم تقول يا nawwar المشكلة بتنحل باستخدام الـ XML بسهولة , هي لغة موحدة وشاملة والشغل فيها سهل وواضح . Wink

 
دخول أو تسجيل لإرسال التعليقات
الأحد, 2004/06/06 - 11:42am
عضو فعال
صورة Firas

تاريخ التسجيل: 2004-02-27
مشاركات: 1477

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: متخرج
الاختصاص: ذكاء صنعي

فعلاً هادا كان الحل ... (XML) Wink

 
دخول أو تسجيل لإرسال التعليقات
الأحد, 2004/06/06 - 6:12pm

تاريخ التسجيل: 2004-06-05
مشاركات: 134

سأقوم بإنشاء موضوع جديد خاص في قسم هندسة البرمجيات يتعلق بـ XML , فعلى من يريد المشاركة به الضغط على الرابط :
http://www.csc-sy.com/html/modules.php?name=Forums&file=viewtopic&t=389

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2006/02/15 - 6:41am

تاريخ التسجيل: 2006-02-11
مشاركات: 1

الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الرابعة
الاختصاص: ذكاء صنعي

thanks for that but we need code in java to convert xml to text

not in iside c#

good bye

 
دخول أو تسجيل لإرسال التعليقات