Câu trả lời:
Tôi có chức năng này trong cơ sở mã của tôi, điều này sẽ làm việc cho bạn.
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);
}
cũng thấy câu hỏi tương tự
import org.xml.sax.InputSource;
Chuyển đổi chuỗi thành InputStream và chuyển nó sang DocumentBuilder
final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.parse(stream);
EDIT
Để trả lời bình luận của uốn cong về mã hóa, hãy xem câu trả lời của shsteimer cho câu hỏi này.
Tôi đang sử dụng phương pháp này
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;
}
Bạn có thể sử dụng gói Progession XML của Scilca có sẵn tại GitHub.
XMLIterator xi = new VirtualXML.XMLIterator("<xml />");
XMLReader xr = new XMLReader(xi);
Document d = xr.parseDocument();
javax.xml.parsers.DocumentBuilder.parse(string)
giả sử chuỗi là một uri (khủng khiếp ...)