XML 파서를 문자열 (예 : 스트립 태그)으로 전달하는 형식으로 XML 문서를 인코딩해야합니다. 그런 다음 다시 디코딩해야하며 Android에서이 작업을 수행해야합니다. 내가 찾고있는 Android API의 라이브러리/클래스는 무엇입니까?Android에서 XML을 인코딩하는 방법은 무엇입니까?
감사
XML 파서를 문자열 (예 : 스트립 태그)으로 전달하는 형식으로 XML 문서를 인코딩해야합니다. 그런 다음 다시 디코딩해야하며 Android에서이 작업을 수행해야합니다. 내가 찾고있는 Android API의 라이브러리/클래스는 무엇입니까?Android에서 XML을 인코딩하는 방법은 무엇입니까?
감사
나는 잘 작동하는 것 같다 URLEncoder/URLDecoder를 사용하여 끝났다.
String encoded = URLEncoder.encode(xml);
일반적인 Java XML Parser 길을 가야하는 것입니다.
당신이 그것을 구축해야하는 경우 수동으로는 XmlSerializer
편집 사용할 수 있습니다
Here는 안드로이드에 XML을 사용하는 방법에 대한 기사입니다, 그러나 그것은 또한 쓰기를 위해
를 XmlSerializer를 사용죄송합니다, 아마도 명확하지 않았을 것입니다. 이미 파서가 있습니다. 인코더를 찾고 있습니다. 나는 단지 '<'를 <으로 돌리고 싶다. – MalcomTucker
미안하지만, 나는 오해하고있다. –
XmlSerializer
은 아마도 원하는 것일 것입니다. 이것을 사용하여 "외부"XML 문서를 작성하십시오. text(...)
method에 XML 문자열을 그대로 둘 수 있으며 이스케이프 처리를 수행합니다. DOM 트리를 빌드하고 XML로 덤프하려는 경우 setTextContent을 사용하여 DOM API에서 동일한 종류의 작업을 수행 할 수 있습니다. 알고있는 것처럼 모든 XML 파서는 텍스트를 요청할 때 엔티티 참조를 제대로 디코딩합니다.
자신 만의 XML 작성 코드를 작성하려면 Apache commons-lang 라이브러리를 프로젝트에 넣은 다음 StringEscapeUtils class을 시도해보십시오. 나는 안드로이드 기본 API에서 실제 XML을 구축하지 않고 엔티티 대체를 수행하는 것에 대해서는 전혀 알지 못한다.
예를 들어,이 시도 :
XmlSerializer xs = Xml.newSerializer();
StringWriter sw = new StringWriter();
xs.setOutput(sw);
xs.startDocument(null, null);
xs.startTag(null, "foo");
xs.text("<bar>this is some complete XML document you had around before</bar>");
xs.endTag(null, "foo");
xs.endDocument();
Log.v("XMLTest", "Generated XML = " + sw.toString());
이것은 정확하게 내가 필요한 것입니다. 제 의견으로는이 질문에 대한 올바른 대답입니다. – tdn120
이 질문은 내가이 문제에 대한 해결책을 검색 한 최초의 결과 중 하나입니다, 그래서 여기에 대답
Html.fromHtml (문자열)
그것은 당신이 실제로있어 것 같은 소리 찾고자하는 것은 _escape_ XML입니다. 즉, 해당 XML 엔터티에 대해 모든 XML 특수 문자를 대체하십시오. 그게 맞습니까? –
네, 맞습니다. 인스턴트 java.net에서 URLEncoder 사용하여 (이 질문을 작성한 후). 거기에 어떤 문제가 있습니까? – MalcomTucker