Class DOMUtil

java.lang.Object
com.infoteria.asteria.util.xml.DOMUtil

public abstract class DOMUtil extends Object
DOMを扱うためのユーティリティクラスです。
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static Document
    DocumentをDeepCopyします。
    abstract Document
    新しいDocumentを作成します
    abstract Document
    createDocument(String namespaceURI, String qname, DocumentType doctype)
    指定の名前空間とQNameを文書要素として持つDocumentを作成します。
    abstract DocumentType
    createDocumentType(String qname, String publicId, String systemId)
    DTDを作成します
    static String
    getAsString(node, false)と同じです。
    static String
    getAsString(Node node, boolean indent)
    Nodeを文字列化します。
    indentがtrueの場合子ノードがElementのみのElementはインデントされます。
    static Element
    getChild(Node node, String name)
    getChild(node, name, 0)と同じ
    static Element
    getChild(Node node, String name, int index)
    nodeの子要素で、NodeNameが nameに等しいもののindex番目を返す。
    static int
    getChildCount(Node node, String name)
    nodeの子要素で、NodeNameが nameに等しいものの数を返す。
    static int
    getChildCountNS(Node node, String namespaceURI, String localName)
    nodeの子要素で、namespaceURIとlocalNameが引数に等しいものの数を返す。
    static Element
    getChildNS(Node node, String namespaceURI, String localName)
    getChildNS(node, namespaceURI, localName, 0)と同じ
    static Element
    getChildNS(Node node, String namespaceURI, String localName, int index)
    nodeの子要素で、namespaceURIとlocalNameが引数に等しいもののindex番目を返す。
    static String
    要素の最初の子テキストの内容を取得する。
    static String
    要素の子孫ノードすべてのテキストを連結して取得する
    abstract String
    parseメソッド実行後に直前にパースしたXMLのXML宣言のエンコーディングを返します
    parse時のEntityResolverを返します
    parse時のエラーハンドラを返します
    boolean
    parse時にEntityReferenceを展開するかどうかを返します
    boolean
    parseメソッドでコメントを無視するかどうかを返します
    boolean
    parseメソッドで空白文字のみのTextノードを無視するかどうかを返します
    static boolean
    isNamespaceDeclared(Node node, String prefix, String nsuri)
    指定のNodeの上位で指定のプレフィクスとネームスペースURIで名前空間が宣言されているかどうかを検査します。
    static boolean
    isQName(Node node, String namespaceURI, String localName)
    ノードのQNameがnamespaceURIとlocalNameに等しいかチェックします。
    boolean
    parse時にDTDによるValidationを行うかどうかを返します
    static boolean
    isWhitespace(char c)
    文字が空白文字かどうかを判定します。
    空白文字は「0x20」「0x09」「0x0a」「0x0d」です。
    static boolean
    文字列がすべて空白文字かどうかを判定します。
    static DOMUtil
    DOMUtilの新しいインスタンスを取得します。
    static String
    文字列から前後の空白文字を取り除き、連続する空白文字は単一の「 」(0x20)に置き換えます。
    static void
    Documentから空白文字のみのTextノードを削除します。
    static void
    要素から空白文字のみのTextノードを削除します。
    abstract Document
    parse(File file)
    ファイルをパースしてDocumentを作成します
    abstract Document
    InputStreamをパースしてDocumentを作成します
    abstract Document
    parse(Reader reader)
    ReaderをパースしてDocumentを作成します
    abstract Document
    指定のURL(またはファイル名)に対応するリソースをパースしてDocumentを作成します
    abstract Document
    InputSourceをパースしてDocumentを作成します
    static void
    remove xml:base attributes
    static void
    saveToFile(Node node, File f, boolean bIndent)
    指定のノードをファイルに保存します。
    indentがtrueの場合子ノードがElementのみのElementはインデントされます。
    static void
    要素の最初の子テキストに valueを設定する。
    既にテキストノードが存在する場合はそれが更新され、ない場合は追加される。
    void
    parse時のEntityResolverを指定します
    void
    parse時のエラーハンドラを指定します
    void
    parse時にEntityReferenceを展開するかどうかを指定します
    void
    setIgnoreComments(boolean value)
    parseメソッドでコメントを無視するかどうかを指定します
    無視した場合parse結果にはCommentノードは含まれません
    void
    setIgnoreWhitespace(boolean value)
    parseメソッドで空白文字のみのTextノードを無視するかどうかを指定します
    無視した場合parse結果には空白文字のみのTextノードは含まれません
    void
    setValidating(boolean value)
    parse時にDTDによるValidationを行うかどうかを指定します

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • DOMUtil

      public DOMUtil()
  • Method Details

    • newInstance

      public static DOMUtil newInstance()
      DOMUtilの新しいインスタンスを取得します。
    • createDocument

      public abstract Document createDocument()
      新しいDocumentを作成します
    • createDocument

      public abstract Document createDocument(String namespaceURI, String qname, DocumentType doctype)
      指定の名前空間とQNameを文書要素として持つDocumentを作成します。
      Parameters:
      namespaceURI - 名前空間URI。名前空間なしの場合はnull
      qname - 文書要素名
    • parse

      public abstract Document parse(File file) throws IOException, ProcessorException
      ファイルをパースしてDocumentを作成します
      Throws:
      IOException
      ProcessorException
    • parse

      public abstract Document parse(String url) throws IOException, ProcessorException
      指定のURL(またはファイル名)に対応するリソースをパースしてDocumentを作成します
      Throws:
      IOException
      ProcessorException
    • parse

      public abstract Document parse(InputStream is) throws IOException, ProcessorException
      InputStreamをパースしてDocumentを作成します
      Throws:
      IOException
      ProcessorException
    • parse

      public abstract Document parse(Reader reader) throws IOException, ProcessorException
      ReaderをパースしてDocumentを作成します
      Throws:
      IOException
      ProcessorException
    • parse

      public abstract Document parse(InputSource is) throws IOException, ProcessorException
      InputSourceをパースしてDocumentを作成します
      Throws:
      IOException
      ProcessorException
    • getDeclaredEncoding

      public abstract String getDeclaredEncoding()
      parseメソッド実行後に直前にパースしたXMLのXML宣言のエンコーディングを返します
    • createDocumentType

      public abstract DocumentType createDocumentType(String qname, String publicId, String systemId)
      DTDを作成します
    • setIgnoreComments

      public void setIgnoreComments(boolean value)
      parseメソッドでコメントを無視するかどうかを指定します
      無視した場合parse結果にはCommentノードは含まれません
    • isIgnoreComments

      public boolean isIgnoreComments()
      parseメソッドでコメントを無視するかどうかを返します
    • setIgnoreWhitespace

      public void setIgnoreWhitespace(boolean value)
      parseメソッドで空白文字のみのTextノードを無視するかどうかを指定します
      無視した場合parse結果には空白文字のみのTextノードは含まれません
    • isIgnoreWhitespace

      public boolean isIgnoreWhitespace()
      parseメソッドで空白文字のみのTextノードを無視するかどうかを返します
    • setValidating

      public void setValidating(boolean value)
      parse時にDTDによるValidationを行うかどうかを指定します
    • isValidating

      public boolean isValidating()
      parse時にDTDによるValidationを行うかどうかを返します
    • setExpandEntityReferences

      public void setExpandEntityReferences(boolean value)
      parse時にEntityReferenceを展開するかどうかを指定します
    • isExpandEntityReferences

      public boolean isExpandEntityReferences()
      parse時にEntityReferenceを展開するかどうかを返します
    • setErrorHandler

      public void setErrorHandler(ErrorHandler handler)
      parse時のエラーハンドラを指定します
    • getErrorHandler

      public ErrorHandler getErrorHandler()
      parse時のエラーハンドラを返します
    • setEntityResolver

      public void setEntityResolver(EntityResolver resolver)
      parse時のEntityResolverを指定します
    • getEntityResolver

      public EntityResolver getEntityResolver()
      parse時のEntityResolverを返します
    • getChildCount

      public static int getChildCount(Node node, String name)
      nodeの子要素で、NodeNameが nameに等しいものの数を返す。
      Parameters:
      node - 子要素を数える対象のノード
      name - カウントする要素のNodeName
      Returns:
      nodeの子要素で、NodeNameが nameに等しいものの数
    • getChild

      public static Element getChild(Node node, String name)
      getChild(node, name, 0)と同じ
    • getChild

      public static Element getChild(Node node, String name, int index)
      nodeの子要素で、NodeNameが nameに等しいもののindex番目を返す。
      Parameters:
      node - 子要素を取得する対象のノード
      name - 取得する要素のNodeName
      Returns:
      取得された要素。存在しない場合はnull。
    • getChildCountNS

      public static int getChildCountNS(Node node, String namespaceURI, String localName)
      nodeの子要素で、namespaceURIとlocalNameが引数に等しいものの数を返す。
      Parameters:
      node - 子要素を数える対象のノード
      namespaceURI - カウントする要素のNamespaceURI
      localName - カウントする要素のLocalName
      Returns:
      nodeの子要素で、namespaceURIとlocalNameが引数に等しいものの数
    • getChildNS

      public static Element getChildNS(Node node, String namespaceURI, String localName)
      getChildNS(node, namespaceURI, localName, 0)と同じ
    • getChildNS

      public static Element getChildNS(Node node, String namespaceURI, String localName, int index)
      nodeの子要素で、namespaceURIとlocalNameが引数に等しいもののindex番目を返す。
      Parameters:
      node - 子要素を取得する対象のノード
      namespaceURI - 取得する要素のNamespaceURI
      localName - 取得する要素のLocalName
      Returns:
      取得された要素。存在しない場合はnull。
    • getChildText

      public static String getChildText(Element el)
      要素の最初の子テキストの内容を取得する。
      Parameters:
      element - テキストを取得する対象の要素
      Returns:
      取得されたテキストの文字列。子にテキストノードが存在しない場合はnull。
    • getChildTextDeep

      public static String getChildTextDeep(Element el)
      要素の子孫ノードすべてのテキストを連結して取得する
      Parameters:
      element - テキストを取得する対象の要素
      Returns:
      取得されたテキストの文字列。子にテキストノードが一つも存在しない場合はnull。
    • setChildText

      public static void setChildText(Element el, String value)
      要素の最初の子テキストに valueを設定する。
      既にテキストノードが存在する場合はそれが更新され、ない場合は追加される。
      Parameters:
      value - 設定するテキスト
      element - テキストを設定する対象の要素
    • isQName

      public static boolean isQName(Node node, String namespaceURI, String localName)
      ノードのQNameがnamespaceURIとlocalNameに等しいかチェックします。
      Parameters:
      node - チェックするノード
      namespaceURI - ネームスペース
      localName - ローカルネーム
    • isWhitespace

      public static boolean isWhitespace(char c)
      文字が空白文字かどうかを判定します。
      空白文字は「0x20」「0x09」「0x0a」「0x0d」です。
    • isWhitespace

      public static boolean isWhitespace(String s)
      文字列がすべて空白文字かどうかを判定します。
    • normalizeWhitespace

      public static void normalizeWhitespace(Document doc)
      Documentから空白文字のみのTextノードを削除します。
    • normalizeWhitespace

      public static void normalizeWhitespace(Element el)
      要素から空白文字のみのTextノードを削除します。
    • normalizeString

      public static String normalizeString(String s)
      文字列から前後の空白文字を取り除き、連続する空白文字は単一の「 」(0x20)に置き換えます。
    • getAsString

      public static String getAsString(Node node)
      getAsString(node, false)と同じです。
    • getAsString

      public static String getAsString(Node node, boolean indent)
      Nodeを文字列化します。
      indentがtrueの場合子ノードがElementのみのElementはインデントされます。
    • isNamespaceDeclared

      public static boolean isNamespaceDeclared(Node node, String prefix, String nsuri)
      指定のNodeの上位で指定のプレフィクスとネームスペースURIで名前空間が宣言されているかどうかを検査します。
    • cloneDocument

      public static Document cloneDocument(Document doc)
      DocumentをDeepCopyします。
    • saveToFile

      public static void saveToFile(Node node, File f, boolean bIndent) throws IOException
      指定のノードをファイルに保存します。
      indentがtrueの場合子ノードがElementのみのElementはインデントされます。
      Throws:
      IOException
    • removeXmlBaseAttribute

      public static void removeXmlBaseAttribute(Node node)
      remove xml:base attributes