다음 코드가 있습니다.
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile);
파일 대신 문자열에 포함 된 XML을 구문 분석하려면 어떻게해야합니까?
답변
내 코드베이스 에이 기능이 있습니다.이 기능이 도움이 될 것입니다.
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);
}
이 비슷한 질문을 참조하십시오
답변
한 가지 방법은 파일이 아닌 InputSource를 사용하는 구문 분석 버전을 사용하는 것입니다.
SAX 입력 소스는 Reader 객체로 구성 할 수 있습니다. 하나의 Reader 객체는 StringReader입니다
그래서 같은
parse(new InputSource(new StringReader(myString))) may work.
답변
답변
문자열을 InputStream으로 변환하여 DocumentBuilder에 전달
final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.parse(stream);
편집
에 대응 bendin ‘인코딩에 관한 코멘트는, 참조 shsteimer 이 질문의 답을’.
답변
이 방법을 사용하고 있습니다
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;
}
답변
GitHub에서 제공되는 Scilca XML Progession 패키지를 사용할 수 있습니다.
XMLIterator xi = new VirtualXML.XMLIterator("<xml />");
XMLReader xr = new XMLReader(xi);
Document d = xr.parseDocument();
답변
그냥 입력
this.file = File("your xml file path")
this.document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file)