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

📄 xmlelement.java

📁 Nano的XML解析器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
     *         setAttribute(String, Object)     * @see nanoxml.XMLElement#removeAttribute(java.lang.String)     *         removeAttribute(String)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getStringAttribute(java.lang.String)     *         getStringAttribute(String)     * @see nanoxml.XMLElement#getStringAttribute(java.lang.String,     *                                            java.lang.String)     *         getStringAttribute(String, String)     */    public String getStringAttribute(String    name,                                     Hashtable valueSet,                                     String    defaultKey,                                     boolean   allowLiterals)    {        return (String) this.getAttribute(name, valueSet, defaultKey,                                          allowLiterals);    }    /**     * Returns an attribute of the element.     * If the attribute doesn't exist, <code>0</code> is returned.     *     * @param name The name of the attribute.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setIntAttribute(java.lang.String, int)     *         setIntAttribute(String, int)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String, int)     *         getIntAttribute(String, int)     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String,     *                                         java.util.Hashtable,     *                                         java.lang.String, boolean)     *         getIntAttribute(String, Hashtable, String, boolean)     */    public int getIntAttribute(String name)    {        return this.getIntAttribute(name, 0);    }    /**     * Returns an attribute of the element.     * If the attribute doesn't exist, <code>defaultValue</code> is returned.     *     * @param name         The name of the attribute.     * @param defaultValue Key to use if the attribute is missing.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setIntAttribute(java.lang.String, int)     *         setIntAttribute(String, int)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String)     *         getIntAttribute(String)     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String,     *                                         java.util.Hashtable,     *                                         java.lang.String, boolean)     *         getIntAttribute(String, Hashtable, String, boolean)     */    public int getIntAttribute(String name,                               int    defaultValue)    {        if (this.ignoreCase) {            name = name.toUpperCase();        }        String value = (String) this.attributes.get(name);        if (value == null) {            return defaultValue;        } else {            try {                return Integer.parseInt(value);            } catch (NumberFormatException e) {                throw this.invalidValue(name, value);            }        }    }    /**     * Returns an attribute by looking up a key in a hashtable.     * If the attribute doesn't exist, the value corresponding to defaultKey     * is returned.     * <P>     * As an example, if valueSet contains the mapping <code>"one" => 1</code>     * and the element contains the attribute <code>attr="one"</code>, then     * <code>getIntAttribute("attr", mapping, defaultKey, false)</code> returns     * <code>1</code>.     *     * @param name     *     The name of the attribute.     * @param valueSet     *     Hashtable mapping keys to values.     * @param defaultKey     *     Key to use if the attribute is missing.     * @param allowLiteralNumbers     *     <code>true</code> if literal numbers are valid.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     *     <li><code>valueSet</code> != null     *     <li>the keys of <code>valueSet</code> are strings     *     <li>the values of <code>valueSet</code> are Integer objects     *     <li><code>defaultKey</code> is either <code>null</code>, a     *         key in <code>valueSet</code> or an integer.     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setIntAttribute(java.lang.String, int)     *         setIntAttribute(String, int)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String)     *         getIntAttribute(String)     * @see nanoxml.XMLElement#getIntAttribute(java.lang.String, int)     *         getIntAttribute(String, int)     */    public int getIntAttribute(String    name,                               Hashtable valueSet,                               String    defaultKey,                               boolean   allowLiteralNumbers)    {        if (this.ignoreCase) {            name = name.toUpperCase();        }        Object key = this.attributes.get(name);        Integer result;        if (key == null) {            key = defaultKey;        }        try {            result = (Integer) valueSet.get(key);        } catch (ClassCastException e) {            throw this.invalidValueSet(name);        }        if (result == null) {            if (! allowLiteralNumbers) {                throw this.invalidValue(name, (String) key);            }            try {                result = Integer.valueOf((String) key);            } catch (NumberFormatException e) {                throw this.invalidValue(name, (String) key);            }        }        return result.intValue();    }    /**     * Returns an attribute of the element.     * If the attribute doesn't exist, <code>0.0</code> is returned.     *     * @param name The name of the attribute.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setDoubleAttribute(java.lang.String, double)     *         setDoubleAttribute(String, double)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String, double)     *         getDoubleAttribute(String, double)     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String,     *                                            java.util.Hashtable,     *                                            java.lang.String, boolean)     *         getDoubleAttribute(String, Hashtable, String, boolean)     */    public double getDoubleAttribute(String name)    {        return this.getDoubleAttribute(name, 0.);    }    /**     * Returns an attribute of the element.     * If the attribute doesn't exist, <code>defaultValue</code> is returned.     *     * @param name         The name of the attribute.     * @param defaultValue Key to use if the attribute is missing.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setDoubleAttribute(java.lang.String, double)     *         setDoubleAttribute(String, double)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String)     *         getDoubleAttribute(String)     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String,     *                                            java.util.Hashtable,     *                                            java.lang.String, boolean)     *         getDoubleAttribute(String, Hashtable, String, boolean)     */    public double getDoubleAttribute(String name,                                     double defaultValue)    {        if (this.ignoreCase) {            name = name.toUpperCase();        }        String value = (String) this.attributes.get(name);        if (value == null) {            return defaultValue;        } else {            try {                return Double.valueOf(value).doubleValue();            } catch (NumberFormatException e) {                throw this.invalidValue(name, value);            }        }    }    /**     * Returns an attribute by looking up a key in a hashtable.     * If the attribute doesn't exist, the value corresponding to defaultKey     * is returned.     * <P>     * As an example, if valueSet contains the mapping <code>"one" =&gt;     * 1.0</code>     * and the element contains the attribute <code>attr="one"</code>, then     * <code>getDoubleAttribute("attr", mapping, defaultKey, false)</code>     * returns <code>1.0</code>.     *     * @param name     *     The name of the attribute.     * @param valueSet     *     Hashtable mapping keys to values.     * @param defaultKey     *     Key to use if the attribute is missing.     * @param allowLiteralNumbers     *     <code>true</code> if literal numbers are valid.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     *     <li><code>valueSet != null</code>     *     <li>the keys of <code>valueSet</code> are strings     *     <li>the values of <code>valueSet</code> are Double objects     *     <li><code>defaultKey</code> is either <code>null</code>, a     *         key in <code>valueSet</code> or a double.     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setDoubleAttribute(java.lang.String, double)     *         setDoubleAttribute(String, double)     * @see nanoxml.XMLElement#enumerateAttributeNames()     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String)     *         getDoubleAttribute(String)     * @see nanoxml.XMLElement#getDoubleAttribute(java.lang.String, double)     *         getDoubleAttribute(String, double)     */    public double getDoubleAttribute(String    name,                                     Hashtable valueSet,                                     String    defaultKey,                                     boolean   allowLiteralNumbers)    {        if (this.ignoreCase) {            name = name.toUpperCase();        }        Object key = this.attributes.get(name);        Double result;        if (key == null) {            key = defaultKey;        }        try {            result = (Double) valueSet.get(key);        } catch (ClassCastException e) {            throw this.invalidValueSet(name);        }        if (result == null) {            if (! allowLiteralNumbers) {                throw this.invalidValue(name, (String) key);            }            try {                result = Double.valueOf((String) key);            } catch (NumberFormatException e) {                throw this.invalidValue(name, (String) key);            }        }        return result.doubleValue();    }    /**     * Returns an attribute of the element.     * If the attribute doesn't exist, <code>defaultValue</code> is returned.     * If the value of the attribute is equal to <code>trueValue</code>,     * <code>true</code> is returned.     * If the value of the attribute is equal to <code>falseValue</code>,     * <code>false</code> is returned.     * If the value doesn't match <code>trueValue</code> or     * <code>falseValue</code>, an exception is thrown.     *     * @param name         The name of the attribute.     * @param trueValue    The value associated with <code>true</code>.     * @param falseValue   The value associated with <code>true</code>.     * @param defaultValue Value to use if the attribute is missing.     *     * </dl><dl><dt><b>Preconditions:</b></dt><dd>     * <ul><li><code>name != null</code>     *     <li><code>name</code> is a valid XML identifier     *     <li><code>trueValue</code> and <code>falseValue</code>     *         are different strings.     * </ul></dd></dl><dl>     *     * @see nanoxml.XMLElement#setAttribute(java.lang.String, java.lang.Object)     *         setAttribute(String, Object)     * @see nanoxml.XMLElement#removeAttribute(java.lang.String)     *         removeAttribute(String)     * @see nanoxml.XMLElement#enumerateAttributeNames()     */    public boolean getBooleanAttribute(String  name,                                       String  trueValue,                                       String  falseValue,                                       boolean defaultValue)    {        if (this.ignoreCase) {            name = name.toUpperCase();        }        Object value = this.attributes.get(name);        if (value == null) {            return defaultValue;        } else if (value.equals(trueValue)) {            return true;        } else if (value.equals(falseValue)) {            return false;        } else {            throw this.invalidValue(name, (String) value);        }    }    /**     * Returns an attribute by looking up a key in a hashtable.     *     * @deprecated Use {@link #getIntAttribute(java.lang.String,     *             java.util.Hashtable, java.lang.String, boolean)     *             getIntAttribute} instead.     */    public int getIntProperty(String    name,                              Hashtable valueSet,                              String    defaultKey)    {        return this.getIntAttribute(name, valueSet, defaultKey, false);    }    /**     * Returns an attribute.     *     * @deprecated Use {@link #getStringAttribute(java.lang.String)     *             getStringAttribute} instead.     */    public String getProperty(String name)    {        return this.getStringAttribute(name);    }    /**     * Returns an attribute.     *

⌨️ 快捷键说明

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