回答:
私のコードベースにはこの関数があります。これでうまくいくはずです。
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);
}
この同様の質問も参照してください
import org.xml.sax.InputSource;
文字列をInputStreamに変換し、DocumentBuilderに渡します
final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.parse(stream);
編集エンコーディングに関するベンディンのコメントに
応じて、この質問に対するシュタイマーの回答を参照してください。
この方法を使用しています
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;
}
javax.xml.parsers.DocumentBuilder.parse(string)
、文字列がuri(ひどい...)であると想定していることに注意してください