반응형
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 InputSource는 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의 답변을 참조하십시오.
javadocs는 해석 방식이 오버로드되었음을 나타냅니다.
문자열 XML을 사용하여 StringStream 또는 InputSource를 생성하면 설정이 완료됩니다.
이 방법을 사용하고 있습니다.
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;
}
Skilca XML Progession 패키지는 GitHub에서 사용할 수 있습니다.
XMLIterator xi = new VirtualXML.XMLIterator("<xml />");
XMLReader xr = new XMLReader(xi);
Document d = xr.parseDocument();
언급URL : https://stackoverflow.com/questions/562160/in-java-how-do-i-parse-xml-as-a-string-instead-of-a-file
반응형
'programing' 카테고리의 다른 글
Java에서 목록을 쉼표로 구분된 문자열로 변환하는 가장 좋은 방법 (0) | 2022.08.15 |
---|---|
데이터가 Vuex에 아직 유지되지 않은 경우 형제 구성 요소 간에 데이터를 공유하시겠습니까? (0) | 2022.08.15 |
nuxt 가져오기 후크 요청을 취소하는 중 (0) | 2022.08.15 |
pthread_t 인쇄 방법 (0) | 2022.08.15 |
단순한 팁탑 확장 또는 prodemirror 플러그인 (0) | 2022.08.15 |