1
爪哇的Xerces 2.9.1插入XML:空間= '保留' 在DOM
insertHere.setAttributeNS(XMLConstants.XML_NS_URI, "xml:space", "preserve");
和
insertHere.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve")
都結束了的只是space='preserve'
,沒有XML前綴的屬性。
insertHere.setAttribute("xml:space", "preserve")
的作品,但它似乎有點不對。我錯過了什麼?
編輯
我檢查。
我在setNamespaceAware打開的情況下閱讀了一個模板文檔。
然後,我使用以下來製作它的副本,然後我開始插入新的元素。
public static Document copyDocument(Document input) {
DocumentType oldDocType = input.getDoctype();
DocumentType newDocType = null;
Document newDoc;
String oldNamespaceUri = input.getDocumentElement().getNamespaceURI();
if (oldDocType != null) {
// cloning doctypes is 'implementation dependent'
String oldDocTypeName = oldDocType.getName();
newDocType = input.getImplementation().createDocumentType(oldDocTypeName,
oldDocType.getPublicId(),
oldDocType.getSystemId());
newDoc = input.getImplementation().createDocument(oldNamespaceUri, oldDocTypeName,
newDocType);
} else {
newDoc = input.getImplementation().createDocument(oldNamespaceUri,
input.getDocumentElement().getNodeName(),
null);
}
Element newDocElement = (Element)newDoc.importNode(input.getDocumentElement(), true);
newDoc.replaceChild(newDocElement, newDoc.getDocumentElement());
return newDoc;
}
不知何故,我懷疑我忘了'setNamespaceAware'。 – bmargulies 2010-08-12 17:43:34