전체 XML 문서 인 tagnames/tagtypes irrelavant를 String 변수에 복사하려고합니다. 사용할 언어는 Java입니다. C#에서 ReadAllText를 사용했지만 전체 XML 문서를 String으로 가질 수 있도록 Java 또는 다른 아이디어에서 해당 명령을 찾아야합니다. 나는 이것을 잠시 동안 일해왔다. 이것은 더 큰 프로젝트의 일부입니다. 이것은 할 일이 남아 있습니다. 어떤 제안? 미리 감사드립니다.XML 문서를 Java의 문자열 변수에 복사
답변
시도 다음 코드이 자바가 아니라 스크립트 언어이기 때문에, 당신은 단지 스캐너 또는 파일 리더를 사용하고 라인으로 라인을 읽고 하나의 문자열로를 추가해야합니다 음
public String convertXMLFileToString(String fileName)
{
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
InputStream inputStream = new FileInputStream(new File(fileName));
org.w3c.dom.Document doc = documentBuilderFactory.newDocumentBuilder().parse(inputStream);
StringWriter stw = new StringWriter();
Transformer serializer = TransformerFactory.newInstance().newTransformer();
serializer.transform(new DOMSource(doc), new StreamResult(stw));
return stw.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
고맙습니다. 나는 그것을 이해했다! 도움에 감사드립니다. 이 방법은 다른 방법입니다. 항상 새로운 것을 배우는 것이 좋다! – Balaji
.
This website에는 Java에서 파일 io에 대한 개요가 있습니다. 나는 실제로 파일 io에 대해서 알고 난 후에도 많은 것을 배웠다.
private void processFile(File file)
{
StringBuilder allText = new StringBuilder();
String line;
Scanner reader = null;
try {
FileInputStream fis = new FileInputStream(propertyFile);
InputStreamReader in = new InputStreamReader(fis, "ISO-8859-1");
reader = new Scanner(in);
while(reader.hasNextLine() && !errorState)
{
line = reader.nextLine();
allText.append(line);
}
} catch (FileNotFoundException e)
{
System.err.println("Unable to read file");
errorState=true;
} catch (UnsupportedEncodingException e) {
System.err.println("Encoding not supported");
errorState=true;
}
finally
{
reader.close();
}
}
를 사용하여 A StreamResult
과 StringWriter
: 여기
참고 이후에 해당 문자열로 수행하는 작업에 매우주의하십시오. 나중에 잘못된 문자 인코딩을 사용하는 일종의 스트림/바이트 []에 쓰면 깨진 xml 데이터가 생성됩니다.
마지막으로이 작업을 수행 할 때 버퍼가있는 판독기를 사용했습니다. 잘 했어.
String output = "";
try {
FileInputStream is = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = "";
while ((line = br.readLine()) != null) {
output = output + line;
}
br.close();
is.close();
} catch(IOException ex) {
//LOG!
}
내 원래의 구현은 실제 버퍼를 사용했지만, 난 내가 매우 쉽게 이런 식으로 갔다 버퍼를 플러싱에 문제가 계속 보였다.
BufferedReader는 각 행의 끝에 \ n을 사용합니다. – RealHowTo
이것은 궁극적으로 나의 목표였습니다. 나는 XStream을 새로운 라인 문자를 질식시키는 시리얼 라이저로 사용했다. 궁극적으로 필자는 XML의 평범한 텍스트 가독성을 무시하고 XML 친숙한 뷰어를 사용하려고 할 때 모든 코드 버전에서 이러한 문자가 필요하지 않았습니다. – PaulSCoder
안녕하세요, 특정 태그 내용을 문자열로 복사하는 법을 알고 계십니까? 세부 사항이있는 나의 단면도에 다른 질문이있다. 당신이 좋은 코더처럼 보이기 때문에 당신이 나를 도울 수 있다면 당신에게 정말 감사 할 것입니다! 감사! – Balaji
많은 답변이 있지만 거의 정확하지는 않습니다. 당신이 선을 BufferedReader의 또는 스캐너를 사용하고 읽는다면 당신은 라인을 BufferedInputStream을 사용하고 읽는다면
- , 결과가없는 라인 결과는 원래의 라인은 인코딩이 잘못 될 수있다 나누기 누락
- 나누기 . 당신이 결과에 라이터를 사용하는 경우에 긍정적 인 소스 인코딩을 알고 있다면
- , 인코딩이 소스
과 일치하지 않을 수 있습니다, 당신은이 작업을 수행 할 수 있습니다
String file2string(File f, Charset cs) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream(10000);
InputStream in = new BufferedInputStream(new FileInputStream(f));
int c;
while ((c = in.read()) != -1)
out.write(c);
in.close();
return out.toString(cs.name());
}
을 그렇게하지 않으면
String transform2String(File f, Charset cs) throws IOException,
TransformerFactoryConfigurationError, TransformerException {
Transformer t = TransformerFactory.newInstance().newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, cs.name());
ByteArrayOutputStream out = new ByteArrayOutputStream(10000);
t.transform(new StreamSource(new BufferedInputStream(
new FileInputStream(f))), new StreamResult(out));
return out.toString(cs.name());
}
- 1. xml 문서를 Java의 다른 XML 문서에 추가하는 방법
- 2. 문자열 변수에 대한 C# Xml 속성 값
- 3. java의 xml dom 파서?
- 4. Java의 일본어 문자열
- 5. "Null"을 Java의 문자열 변수에 값으로 할당하는 방법
- 6. Java의 비슷한 클래스간에 필드 복사
- 7. JDom 문서를 Java의 SOAPMessage로 변환하십시오.
- 8. 델리게이트 매개 변수에 대한 XML 주석/문서를 어떻게 제공합니까?
- 9. Mongomapper : 문서를 새 문서로 복사
- 10. Java의 빈 문자열 확인
- 11. Java의 Clob에 대한 문자열?
- 12. Java의 빠른 문자열 컬렉션
- 13. java의 문자열 데이터 유형
- 14. Java의 문자열 배열
- 15. Java의 문자열 날짜 :
- 16. Android/Java : 변수에 문자열 사용
- 17. 복사 XML 문서는
- 18. 동적으로 XML 문서를 만들려면
- 19. .setting 변수에 문자열 저장
- 20. UIWebView에서 문자열 복사
- 21. 루아에서 문자열 복사 피하기
- 22. Java의 다른 메소드에서 인스턴스 변수에 액세스
- 23. XML : xml 문서를 다른 문서의 노드에 추가하기
- 24. XML 스타일 시트와 XML 문서를 Nokogiri와 연결
- 25. XML 문서를 구문 분석하는 방법은 무엇입니까?
- 26. XML 문서를 데이터베이스에 저장 하시겠습니까?
- 27. perl XML 문서를 작성하는 LibXML
- 28. LINQ로 XML 문서를 쿼리하는 방법?
- 29. 콜백에서 XML 문서를 어떻게 파싱합니까?
- 30. jsp에서 문자열 변수에 값을 할당
http://stackoverflow.com/questions/5511096/java-convert-formatted-xml-file-to-one- : 출력을 감지하고 제어하는 소스 인코딩을 알고, XML 파서에 의존 라인 문자열 – Shawn
@Shawn : +1, 완벽한 복제물. –
답변에 대한 의견을 보내고 최상의 대답을 선택하는 것을 잊지 마십시오. – hbhakhra