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

📄 domtofile.java

📁 这是一个用java和xml编写的流媒体服务器管理软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * ==================================================================== * The Vovida Software License, Version 1.0 *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", * and "Vovida Open Communication Application Library (VOCAL)" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact vocal@vovida.org. *  * 4. Products derived from this software may not be called "VOCAL", nor * may "VOCAL" appear in their name, without prior written * permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. *  */package vocal.data;import vocal.comm.VPPTransactionWrapper;import vocal.comm.VPPException;import vocal.ui.AdministrativeLogin;import javax.xml.transform.TransformerFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.stream.StreamSource;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.dom.DOMSource;import org.w3c.dom.Node;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.w3c.dom.Attr;import org.w3c.dom.NamedNodeMap;import java.util.Vector;import java.util.Hashtable;import java.util.Enumeration;import java.io.FileNotFoundException;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;/** * $RCSfile: DOMToFile.java,v $ *  * @author $Author: bko $, $Date: 2002/09/26 01:14:00 $ * @version $Revision: 1.31 $ */public class DOMToFile implements TreeNodeTypes{  private static Document baseDocument;  private static Element rootElement;  private static Element systemElement;  private static Element serversElement;  public static void deleteFile(Element currentNode)  {    String fileNameString = null;    String fileDirString = null;    fileNameString = currentNode.getAttribute("fileName");    fileDirString = currentNode.getAttribute("fileDir");    VPPTransactionWrapper connection = AdministrativeLogin.getConnection();    try    {      connection.doDel(fileDirString, fileNameString);    }    catch (VPPException e)    {      VPPTransactionWrapper.showVPPException(e, "Error deleting file");    }  }  /**   * Write currentNode to file if it has an attribute "fileName"   * @param currentNode the node we will try to write.   * @return true if the file was successfully written, or false if   * currentNode was not writable (did not have a filename);   * @throws FailedToWriteFileException if currentNode should be writable but   * the write failed   */  public static boolean tryToWriteFile(Element currentNode)     throws FailedToWriteFileException  {    String fileTypeString = null;    String fileNameString = null;    String fileDirString = null;    try    {      fileNameString = currentNode.getAttribute("fileName");      fileDirString = currentNode.getAttribute("fileDir");      // uncomment for debugging      // System.out.println("writing to file name: " + fileNameString);      if (!fileNameString.equals(""))      {        fileTypeString = currentNode.getAttribute("fileType");        int nodeType = Integer.parseInt(fileTypeString);                writeFileFromNode(currentNode, nodeType, fileDirString,                           fileNameString);        return true;      }    }    catch (NumberFormatException e)    {      System.out.println("Error: corrupted data in xml for " + fileNameString                          + "\n" + fileTypeString                          + " cannot be parsed as a node type");      e.printStackTrace();    }    return false;  }     // tryToWriteFile  /**   * Starting from the root of a tree,   * write to file any node that has   * the attribute "fileName"   */  public static void writeAllFilesInTree(Document doc)  {    Node docElem = doc.getDocumentElement();    writeAllFilesInTreeIter(docElem);  }  private static void writeAllFilesInTreeIter(Node node)  {    try    {      NamedNodeMap atts = node.getAttributes();      if(atts != null)      {        Node attNode = atts.getNamedItem("fileName");        if (attNode != null)        {          tryToWriteFile((Element)node);          return;        }        else        {          NodeList children = node.getChildNodes();          for (int i = 0; i < children.getLength(); i++)          {            writeAllFilesInTreeIter(children.item(i));          }        }      }    }    catch (Exception e)    {      e.printStackTrace();    }  }  /**   * Starting from currentNode, write to file any node that has   * an attribute "filename".   */  public static void writeAllFilesInPath(Element endOfPath)     throws FailedToWriteFileException  {    Element currentNode = endOfPath;    try    {      Node parentNode = null;      // uncomment for debugging      // System.out.println("current node: " + currentNode.getNodeName());      tryToWriteFile(currentNode);      while (true)      {        parentNode = currentNode.getParentNode();        if (parentNode != null             && parentNode.getNodeType() == Node.ELEMENT_NODE)        {          currentNode = (Element) parentNode;          // uncomment for debugging          // System.out.println("current node: " + currentNode.getNodeName());          tryToWriteFile(currentNode);        }        else        {          if (parentNode == null)          {            // uncomment for debugging            // System.out.println("returning because parent is null");          }          else if (parentNode.getNodeType() != Node.ELEMENT_NODE)          {            // uncomment for debugging            // System.out.println("returning because parent type is "            // + parentNode.getNodeType());          }          return;        }      }    }    catch (FailedToWriteFileException e)    {      System.out.println("Failed to write file at node "                          + currentNode.getNodeName());      throw e;    }  }     // writeAllFilesInPath  /**   * Starting from currentNode, write to file first node that has   * an attribute "filename".   */  public static void writeFirstFileInPath(Element endOfPath)     throws FailedToWriteFileException  {    Element currentNode = endOfPath;    Node parentNode = null;    if (tryToWriteFile(currentNode))    {      return;    }    while (true)    {      parentNode = currentNode.getParentNode();      if (parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE)      {

⌨️ 快捷键说明

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