これが私の状況です。
XML データを含む文字列があります。
<tag>
<anotherTag> data </anotherTag>
</tag>
その文字列を取得し、次のコードを実行してドキュメントに変換します。
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(new InputSource(new StringReader(sXMLString)));
}
catch (Exception e) {
// Parser with specified options can't be built
ceLogger.logError("Unable to build a new XML Document from string provided:\t" + e.getMessage());
return null;
}
結果のxmlはほぼ完璧です。ただし、データが欠落しており、次のようになります。
<tag>
<anotherTag />
</tag>
XML ドキュメントを作成するときにテキストをコピーするにはどうすればよいですか? そもそもテキストが削除されるのはなぜですか?
編集:実際の問題は、次の行に沿ったものになりました:自分の関数で XML 構造を解析しているときに、この行があります:
if (curChild.getNodeType()==Node.ELEMENT_NODE)
sResult.append(XMLToString((Element)children.item(i),attribute_mask));
しかし、TEXT ノードにはそのようなロジックが存在しないため、単純に無視されます。