java - للصف - مشاريع الفيجوال بيسك جاهزة




في Java ، كيف يمكنني تحليل XML كسلاسل بدلاً من ملف؟ (4)

أنا أستخدم هذه الطريقة

public Document parseXmlFromString(String xmlString){
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    InputStream inputStream = new    ByteArrayInputStream(xmlString.getBytes());
    org.w3c.dom.Document document = builder.parse(inputStream);
    return document;
}

لدي الكود التالي:

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile);

كيف يمكنني الحصول على تحليل XML الموجود داخل سلسلة بدلاً من ملف؟


إحدى الطرق لاستخدام إصدار تحليل يأخذ InputSource بدلاً من ملف

يمكن إنشاء SAX InputSource من كائن قارئ. كائن قارئ واحد هو StringReader

شيء من هذا القبيل

parse(new InputSource(new StringReader(myString))) may work. 

لدي هذه الوظيفة في قاعدة الكود ، وهذا يجب أن يعمل من أجلك.

public static Document loadXMLFromString(String xml) throws Exception
{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(xml));
    return builder.parse(is);
}

انظر أيضا هذا السؤال مماثل


يمكنك استخدام حزمة Scilca XML Progession المتوفرة في GitHub.

XMLIterator xi = new VirtualXML.XMLIterator("<xml />");
XMLReader xr = new XMLReader(xi);
Document d = xr.parseDocument();




parsing