반응형
Java에서 XML을 파일 대신 문자열로 구문 분석하는 방법은 무엇입니까?
다음 코드가 있습니다.
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.
javadocs 는 구문 분석 메소드가 과부하되었음을 보여줍니다.
문자열 XML을 사용하여 StringStream 또는 InputSource를 작성하면 설정해야합니다.
문자열을 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();
참고 : https://stackoverflow.com/questions/562160/in-java-how-do-i-parse-xml-as-a-string-instead-of-a-file
반응형
'Programing' 카테고리의 다른 글
파이썬에서 목록을 회전시키는 효율적인 방법 (0) | 2020.04.09 |
---|---|
Java 8 메소드 참조 : 매개 변수화 된 결과를 제공 할 수있는 공급 업체 제공 (0) | 2020.04.09 |
'자산'폴더에서 SD 카드로 파일을 복사하는 방법은 무엇입니까? (0) | 2020.04.09 |
PHP는 하나의 배열을 다른 배열에 추가합니다 (array_push 또는 + 아님) (0) | 2020.04.09 |
Vim : 커서를 마지막 위치로 이동 (0) | 2020.04.09 |