我有一个XML文件,如下所示,我需要用另一个标签替换标签:
minHand.contentsGravity = kCAGravityResizeAspect;
minHand.contentsScale = scale;
现在我想要这样的XML:您可以看到<?xml version="1.0" encoding='utf-8'?>
<result>
<!-- some xml data along with lot of other tags -->
</result>
标记已替换为result
标记,ClientHolder
标记内的所有内容在result
中都相同标签也是。
ClientHolder
到目前为止,这是我的代码,之后我无法理解如何使用Document对象执行上述操作:
<?xml version="1.0" encoding='utf-8'?>
<ClientHolder xmlns="http://www.host.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.host.com model.xsd">
<!-- some xml data along with lot of other tags -->
</ClientHolder>
答案 0 :(得分:1)
您可以获取命名为result的所有节点,然后将其全部修改,重命名节点并添加其他属性:
NodeList nodes = doc.getElementsByTagName("result");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
doc.renameNode(node, null, "ClientHolder");
Element element = (Element) node;
element.setAttribute("xmlns", "http://www.host.com");
element.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
element.setAttribute("xsi:schemaLocation", "http://www.host.com model.xsd");
}
这是导入:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
这就是你可以将它保存到文件的方式:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(clientFile);
Source input = new DOMSource(doc);
transformer.transform(input, output);