الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قراءة ملفات ال HTML

بدأه mhewedy في 15 يوليو 2010 · 1 رد · 511 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,,,

إذا كان عندك ملف HTML غير مهئ (non-well formed) , كيف سقوم بقراءة محتوياته داخل الجافا؟؟

إذا جربت أن تستخدم XML Parser , فإن ال parser سوف يعترض على هيئة الملف,,, لذا,, يجب علىك أن تستخدم HTML parser

هناك العديد, من ضمنهم nekohtml

مثال:

String raw = "<FORM> <input type='text' name='usrnamTxt' > <input type='text' name='passwdTxt'> </FROM>"
org.cyberneko.html.parsers.DOMParser parser = new org.cyberneko.html.parsers.DOMParser();
parser.parse(new InputSource(new StringReader(raw)));
Document doc = parser.getDocument();
Node formElement = doc.getElementsByTagName("FORM").item(0); // get the only FORM element
Element submitEle = doc.createElement("INPUT");
submitEle.setAttribute("type", "submit");
submitEle.setAttribute("value", "Login");
formElement.appendChild(submitEle);
StringWriter writer = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transfromer = tFactory.newTransformer();
transfromer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transfromer.setOutputProperty(OutputKeys.INDENT, "yes");
transfromer.transform(new DOMSource(formElement), new StreamResult(writer));
System.out.println(writer.toString());

الناتج شئ مثل هذا:

<FORM> <input type='text' name='usrnamTxt' > <input type='text' name='passwdTxt'> <INPUT type='submit' value='login'/> </FROM>
2
#2

+1

هناك عشرات من المكتبات للHTML Parsing في الجافا.. سابقاً استخدمت JTidy و JSoup .. ووجدت الأخيرة http://jsoup.org/ هي الأسهل على الاطلاق..

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";

Document doc = Jsoup.parse(html);

Element link = doc.select("a").first(); 
String text = doc.body().text(); // "An example link" 
String linkHref = link.attr("href"); // "http://example.com/" 
String linkText = link.text(); // "example"
String linkOuterH = link.outerHtml();  // "<a href="http://example.com"><b>example</b></a>" 
String linkInnerH = link.html(); // "<b>example</b>"

بالتوفيق..

1

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

مواضيع مشابهة