public class XmlCope {
public static List<Element> getChildElements(Node pNode)
{
List<Element> elements=new ArrayList<Element>();
NodeList nodeList=pNode.getChildNodes();
int length=nodeList.getLength();
for(int i=0;i<length;++i)
{
Node node=nodeList.item(i);
if(node instanceof Element)
elements.add((Element)node);
}
return elements;
}
/**
* 加载并解析xml文件
* @param file 文件
* @return 解析后的Document类型
*/
public static Document load(File file) {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(file);
document.normalize();
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
/**
* 生成新的document
* @return 新的 document
*/
public static Document newdocument() {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument();
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
/**
* 保存document 到指定的文件
* @param document 要保存的document
* @param filename 保存位置
* @return 是否保存成功
*/
public static boolean doc2XmlFile(Document document, File file) {
boolean flag = true;
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
// transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(file);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(source, result);
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
return flag;
}
}
java xml
最新推荐文章于 2023-03-17 17:50:10 发布