JDomUtil类,提供JDom常用方法
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
/**
*这个类提供一些 JDom 对象常用的方法。
* @author 刘海龙(xiaoleilong@mail.biti.edu.cn)
*/
public class JDomUtil {
/**
* 根据指定路径的XML文件建立JDom对象
* @param filePath XML文件的路径
* @return 返回建立的JDom对象,建立不成功返回null 。
*/
public static Document buildFromFile(String filePath) {
try {
SAXBuilder builder = new SAXBuilder();
Document anotherDocument = builder.build(new File(filePath));
return anotherDocument;
} catch(JDOMException e) {
e.printStackTrace();
} catch(NullPointerException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据XML 字符串 建立JDom对象
* @param xmlString XML格式的字符串
* @return 返回建立的JDom对象,建立不成功返回null 。
*/
public static Document buildFromXMLString(String xmlString) {
try {
SAXBuilder builder = new SAXBuilder();
Document anotherDocument = builder.build(new StringReader(xmlString));
return anotherDocument;
} catch(JDOMException e) {
e.printStackTrace();
} catch(NullPointerException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据Dom对象建立JDom对象
* @param Dom org.w3c.dom.Document对象
* @return 返回建立的JDom对象,建立不成功返回null 。
*/
public static Document buildFromDom(org.w3c.dom.Document Dom)
throws JDOMException, IOException {
org.jdom.input.DOMBuilder builder = new org.jdom.input.DOMBuilder();
Document jdomDoc = builder.build(Dom);
return jdomDoc;
}
/**
*这个方法使用XMLOutputer将一个JDom对象输出到标准输出设备,使用 GBK 编码
* @param myDocument 将要被输出的JDom对象
*/
public static void outputToStdout(Document myDocument) {
outputToStdout(myDocument,"GBK");
}
/**
*这个方法使用XMLOutputer将一个JDom对象输出到标准输出设备
* @param myDocument 将要被输出的JDom对象
* @param encoding 输出使用的编码
*/
public static void outputToStdout(Document myDocument,String encoding) {
try {
XMLOutputter outputter = new XMLOutputter(" ", true,encoding);
outputter.output(myDocument, System.out);
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
/**
* 这个方法将JDom对象转换字符串.
* @param document 将要被转换的JDom对象
*/
public static String outputToString(Document document){
return outputToString(document,"GBK");
}
/**
* 这个方法将JDom对象转换字符串.
* @param document 将要被转换的JDom对象
* @param encoding 输出字符串使用的编码
*/
public static String outputToString(Document document,String encoding){
ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
XMLOutputter docWriter = new XMLOutputter(" ", true,encoding);
try{
docWriter.output(document, byteRep);
}catch(Exception e){
}
return byteRep.toString();
}
public static org.w3c.dom.Document outputToDom(org.jdom.Document jdomDoc)
throws JDOMException {
org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
return outputter.output(jdomDoc);
}
/**
* 这个方法使用XMLOutputter将JDom对象输出到文件
* @param myDocument 将要输出的JDom对象
* @param filePath 将要输出到的磁盘路径
*/
public static void outputToFile(Document myDocument,String filePath) {
outputToFile(myDocument,filePath,"GBK");
}
/**
* 这个方法使用XMLOutputter将JDom对象输出到文件
* @param myDocument 将要输出的JDom对象
* @param filePath 将要输出到的磁盘路径
* @param encoding 编码方式
*/
public static void outputToFile(Document myDocument,String filePath,String encoding) {
//setup this like outputDocument
try {
XMLOutputter outputter = new XMLOutputter(" ", true,encoding);
//output to a file
FileWriter writer = new FileWriter(filePath);
outputter.output(myDocument, writer);
writer.close();
} catch(java.io.IOException e) {
e.printStackTrace();
}
}
/**
* 这个方法将JDom对象通过样式单转换.
* @param myDocument 将要被转换的JDom对象
* @param xslFilePath XSL文件的磁盘路径
*/
public static void executeXSL(Document myDocument,String xslFilePath,StreamResult xmlResult) {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
// Make the input sources for the XML and XSLT documents
org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
org.w3c.dom.Document domDocument = outputter.output(myDocument);
javax.xml.transform.Source xmlSource = new javax.xml.transform.dom.DOMSource(domDocument);
StreamSource xsltSource = new StreamSource(new FileInputStream(xslFilePath));
//Get a XSLT transformer
Transformer transformer = tFactory.newTransformer(xsltSource);
//do the transform
transformer.transform(xmlSource, xmlResult);
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(TransformerConfigurationException e) {
e.printStackTrace();
} catch(TransformerException e) {
e.printStackTrace();
} catch(org.jdom.JDOMException e) {
e.printStackTrace();
}
}
//Main 函数,局部测试用。
public static void main(String argv[]) {
}
}
相关推荐
如何将xml的String字符串转化标准格式的String字符串(jdom)
NULL 博文链接:https://gaojiewyh.iteye.com/blog/460382
idea2025-free.zip
idea2025-free.zip
机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip
机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip
机械三维3D设计图-自动下落吹钉振动盘.zip
机械三维3D设计图-自动下落吹钉振动盘.zip
基于一致性理论的三机并联独立微网二次控制模型研究(Simulink仿真实现)
内容概要:本文针对三机并联独立微网系统,研究了基于一致性理论的二次控制模型,旨在解决传统一次控制中存在的电压与频率偏差问题,实现微网中多个分布式电源间的协同自治运行。通过引入一致性算法,设计了分布式二次控制策略,能够在无需中央控制器的情况下,实现各分布式单元间的信息交互与状态同步,有效恢复系统电压和频率至额定值,提升微网孤岛运行模式下的电能质量和动态稳定性。研究基于Matlab/Simulink平台构建了完整的三机并联微网仿真模型,详细阐述了控制器架构设计、一致性协议构建及关键参数整定方法,并通过仿真实验验证了所提控制策略在负载突变、机组投切等工况下的有效性、鲁棒性与优越的动态响应性能。该成果为独立微网的分布式协同控制提供了切实可行的技术方案和理论依据。; 适合人群:具备电力系统、电气工程及其自动化、新能源科学与工程等相关专业背景的科研人员与工程技术人员,熟悉MATLAB/Simulink仿真工具,尤其适合从事微电网控制、分布式能源协调优化、智能电网等方向的研究学者与研究生。; 使用场景及目标:① 学习并掌握基于一致性理论的分布式协同控制原理及其在微网二次控制中的具体应用;② 深入理解多智能体系统在电力系统中的建模与仿真方法;③ 为独立微网、海岛微网、偏远地区供电系统等无主站场景下的稳定运行提供控制策略设计参考与仿真验证案例。; 阅读建议:建议读者结合微网基础知识与控制理论进行学习,重点关注一致性协议的数学建模与Simulink模块化实现过程,通过修改仿真参数、测试不同通信拓扑等方式深入理解控制效果的影响因素,并可进一步将该思想拓展至更复杂的多能微网系统研究中。


