السلام عليكم,,,
إذا كان عندك ملف 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>