Xml com.sun.org.apache.xerces.internal.dom.DeferredElementImpl转换为字符串
我有一个类型的对象Xml com.sun.org.apache.xerces.internal.dom.DeferredElementImpl转换为字符串,xml,dom,Xml,Dom,我有一个类型的对象 com.sun.org.apache.xerces.internal.dom.DeferredElementImpl 包含XML根元素和下面的结构 如何从中检索作为字符串的XML内容 请注意,方法toString()是可用的,但这是以一种非常基本的方式实现的,只报告字符串,如[root:null],因此只显示根元素名称,而不显示此元素的任何进一步内容。 在javadoc中,此方法被列为“非DOM方法以方便调试”。我知道这有点晚,但如果您仍在寻找解决方案,请尝试以下方法: T
com.sun.org.apache.xerces.internal.dom.DeferredElementImpl
包含XML根元素和下面的结构
如何从中检索作为字符串的XML内容
请注意,方法toString()
是可用的,但这是以一种非常基本的方式实现的,只报告字符串,如[root:null]
,因此只显示根元素名称,而不显示此元素的任何进一步内容。在javadoc中,此方法被列为“非DOM方法以方便调试”。我知道这有点晚,但如果您仍在寻找解决方案,请尝试以下方法:
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(node);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
其中,节点
是DeferredElementImpl对象。DeferredElementImpl实现了节点接口,因此您应该能够像使用任何其他DOM节点一样在其上使用转换器
我知道这有点晚,但如果您仍在寻找解决方案,请尝试以下方法:
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(node);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
其中,节点
是DeferredElementImpl对象。DeferredElementImpl实现了节点接口,因此您应该能够像使用任何其他DOM节点一样在其上使用转换器
我使用此方法从
com.sun.org.apache.xerces.internal.dom.DeferredElementImpl
public static String getCharacterDataFromElement(Element e) throws Exception {
String data = "";
Node child = e.getFirstChild();
if (child instanceof DeferredElementImpl) {
DeferredElementImpl node = (DeferredElementImpl) child;
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer;
transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(node);
StreamResult result = new StreamResult(new StringWriter());
transformer.transform(source, result);
data = result.getWriter().toString();
}
return data;
}
我使用此方法从
com.sun.org.apache.xerces.internal.dom.DeferredElementImpl
public static String getCharacterDataFromElement(Element e) throws Exception {
String data = "";
Node child = e.getFirstChild();
if (child instanceof DeferredElementImpl) {
DeferredElementImpl node = (DeferredElementImpl) child;
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer;
transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(node);
StreamResult result = new StreamResult(new StringWriter());
transformer.transform(source, result);
data = result.getWriter().toString();
}
return data;
}
值得一试,不管怎样,我奖励了1up,因为我在所有堆栈溢出问题中发现了这个老问题!值得一试,不管怎样,我奖励了1up,因为我在所有堆栈溢出问题中发现了这个老问题!