📄 xmlelement.java
字号:
* 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" => * 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 + -