⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlmanager.java

📁 基于java的3d开发库。对坐java3d的朋友有很大的帮助。
💻 JAVA
字号:
//===========================================================================// JDK basic classesimport java.io.File;// XML classesimport javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerFactoryConfigurationError;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;// VSDK classesimport vsdk.toolkit.environment.geometry.ParametricCurve;import vsdk.toolkit.environment.geometry.ParametricBiCubicPatch;import vsdk.toolkit.io.XmlException;import vsdk.toolkit.io.geometry.ParametricCurvePersistence;import vsdk.toolkit.io.geometry.ParametricBiCubicPatchPersistence;public class XmlManager {    public static void exportXml(Object object, String outputFilename,                                 String dtdFilename) throws XmlException {        try {            //- 1. Create a new empty Document --------------------------------            DocumentBuilderFactory factory;            DocumentBuilder builder;            Document document;            factory = DocumentBuilderFactory.newInstance();            factory.setValidating(false); // Warning: check what it means            factory.setNamespaceAware(true); // Warning: check what it means            builder = factory.newDocumentBuilder();            document = builder.newDocument();            //- 2. Create an Element from the specified object ----------------            Element xmlElement;            xmlElement = null;            if ( object instanceof ParametricCurve)  {                ParametricCurve curve = (ParametricCurve) object;                xmlElement = ParametricCurvePersistence.toElement(curve,                                                                   document);            }            else if ( object instanceof ParametricBiCubicPatch ) {                ParametricBiCubicPatch patch = (ParametricBiCubicPatch) object;                xmlElement = ParametricBiCubicPatchPersistence.toElement(patch,                                                                     document);            }            //- 3. Add Element to Document ------------------------------------            if ( xmlElement != null ) {                document.appendChild(xmlElement);            }            document.normalizeDocument();            //- 4. Export Document to File ------------------------------------            Source source = new DOMSource(document);            Result result = new StreamResult(new File(outputFilename));            Transformer xformer;            xformer = TransformerFactory.newInstance().newTransformer();            xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,                                      dtdFilename);            // Make resulting XML file more human-readable            xformer.setOutputProperty(OutputKeys.INDENT, "yes");            // Warning: what encoding to use?            xformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");            xformer.transform(source, result);            return;        }        catch ( Exception ex ) {            System.err.println(ex);        }    }    public static Object importXml(String inputFilename) throws        XmlException {        try {            //- 1. Create a Document from the XML input file ------------------            DocumentBuilderFactory factory;            DocumentBuilder builder;            Document document;            factory = DocumentBuilderFactory.newInstance();            factory.setValidating(false); // Warning: check what it means            factory.setNamespaceAware(true); // Warning: check what it means            builder = factory.newDocumentBuilder();            document = builder.parse(new File(inputFilename));            //- 2. Extract objects from Document ------------------------------            Node rootNode = document.getFirstChild();            NodeList nodeList;            if ( rootNode.getNodeName() ==                  ParametricCurvePersistence.rootName ) {                nodeList = document.getElementsByTagName(                    ParametricCurvePersistence.rootName);                Node firstNode = nodeList.item(0);                ParametricCurve curve;                curve = ParametricCurvePersistence.nodeToParametricCurve(                    firstNode);                return curve;            }            else if ( rootNode.getNodeName() ==                      ParametricBiCubicPatchPersistence.rootName ) {                nodeList = document.getElementsByTagName(                    ParametricBiCubicPatchPersistence.rootName);                Node firstNode = nodeList.item(0);                ParametricBiCubicPatch patch;                patch = ParametricBiCubicPatchPersistence.                    nodeToParametricBiCubicPatch(firstNode);                return patch;            }            //-----------------------------------------------------------------        }        catch ( Exception ex ) {            System.err.println(ex);        }        return null;    }}//===========================================================================//= EOF                                                                     =//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -