Package org.jsoup.nodes
Class Attribute
- java.lang.Object
-
- org.jsoup.nodes.Attribute
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.util.Map.Entry<java.lang.String,java.lang.String>
public class Attribute extends java.lang.Object implements java.util.Map.Entry<java.lang.String,java.lang.String>, java.lang.Cloneable
A single key + value attribute. (Only used for presentation.)
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
booleanAttributes
private static java.util.regex.Pattern
htmlKeyReplace
private static java.util.regex.Pattern
htmlKeyValid
private java.lang.String
key
(package private) Attributes
parent
private java.lang.String
val
private static java.util.regex.Pattern
xmlKeyReplace
private static java.util.regex.Pattern
xmlKeyValid
-
Constructor Summary
Constructors Constructor Description Attribute(java.lang.String key, java.lang.String value)
Create a new attribute from unencoded (raw) key and value.Attribute(java.lang.String key, java.lang.String val, Attributes parent)
Create a new attribute from unencoded (raw) key and value.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Attribute
clone()
static Attribute
createFromEncoded(java.lang.String unencodedKey, java.lang.String encodedValue)
Create a new Attribute from an unencoded key and a HTML attribute encoded value.boolean
equals(java.lang.Object o)
java.lang.String
getKey()
Get the attribute key.static java.lang.String
getValidKey(java.lang.String key, Document.OutputSettings.Syntax syntax)
java.lang.String
getValue()
Get the attribute value.boolean
hasDeclaredValue()
Check if this Attribute has a value.int
hashCode()
java.lang.String
html()
Get the HTML representation of this attribute; e.g.protected void
html(java.lang.Appendable accum, Document.OutputSettings out)
protected static void
html(java.lang.String key, java.lang.String val, java.lang.Appendable accum, Document.OutputSettings out)
(package private) static void
htmlNoValidate(java.lang.String key, java.lang.String val, java.lang.Appendable accum, Document.OutputSettings out)
static boolean
isBooleanAttribute(java.lang.String key)
Checks if this attribute name is defined as a boolean attribute in HTML5protected boolean
isDataAttribute()
protected static boolean
isDataAttribute(java.lang.String key)
void
setKey(java.lang.String key)
Set the attribute key; case is preserved.java.lang.String
setValue(java.lang.String val)
Set the attribute value.protected static boolean
shouldCollapseAttribute(java.lang.String key, java.lang.String val, Document.OutputSettings out)
protected boolean
shouldCollapseAttribute(Document.OutputSettings out)
Collapsible if it's a boolean attribute and value is empty or same as nameRange.AttributeRange
sourceRange()
Get the source ranges (start to end positions) in the original input source from which this attribute's name and value were parsed.java.lang.String
toString()
Get the string representation of this attribute, implemented ashtml()
.
-
-
-
Field Detail
-
booleanAttributes
private static final java.lang.String[] booleanAttributes
-
key
private java.lang.String key
-
val
private java.lang.String val
-
parent
Attributes parent
-
xmlKeyValid
private static final java.util.regex.Pattern xmlKeyValid
-
xmlKeyReplace
private static final java.util.regex.Pattern xmlKeyReplace
-
htmlKeyValid
private static final java.util.regex.Pattern htmlKeyValid
-
htmlKeyReplace
private static final java.util.regex.Pattern htmlKeyReplace
-
-
Constructor Detail
-
Attribute
public Attribute(java.lang.String key, java.lang.String value)
Create a new attribute from unencoded (raw) key and value.- Parameters:
key
- attribute key; case is preserved.value
- attribute value (may be null)- See Also:
createFromEncoded(java.lang.String, java.lang.String)
-
Attribute
public Attribute(java.lang.String key, java.lang.String val, Attributes parent)
Create a new attribute from unencoded (raw) key and value.- Parameters:
key
- attribute key; case is preserved.val
- attribute value (may be null)parent
- the containing Attributes (this Attribute is not automatically added to said Attributes)- See Also:
createFromEncoded(java.lang.String, java.lang.String)
-
-
Method Detail
-
getKey
public java.lang.String getKey()
Get the attribute key.- Specified by:
getKey
in interfacejava.util.Map.Entry<java.lang.String,java.lang.String>
- Returns:
- the attribute key
-
setKey
public void setKey(java.lang.String key)
Set the attribute key; case is preserved.- Parameters:
key
- the new key; must not be null
-
getValue
public java.lang.String getValue()
Get the attribute value. Will return an empty string if the value is not set.- Specified by:
getValue
in interfacejava.util.Map.Entry<java.lang.String,java.lang.String>
- Returns:
- the attribute value
-
hasDeclaredValue
public boolean hasDeclaredValue()
Check if this Attribute has a value. Set boolean attributes have no value.- Returns:
- if this is a boolean attribute / attribute without a value
-
setValue
public java.lang.String setValue(java.lang.String val)
Set the attribute value.- Specified by:
setValue
in interfacejava.util.Map.Entry<java.lang.String,java.lang.String>
- Parameters:
val
- the new attribute value; may be null (to set an enabled boolean attribute)- Returns:
- the previous value (if was null; an empty string)
-
html
public java.lang.String html()
Get the HTML representation of this attribute; e.g.href="index.html"
.- Returns:
- HTML
-
sourceRange
public Range.AttributeRange sourceRange()
Get the source ranges (start to end positions) in the original input source from which this attribute's name and value were parsed.Position tracking must be enabled prior to parsing the content.
- Returns:
- the ranges for the attribute's name and value, or
untracked
if the attribute does not exist or its range was not tracked. - Since:
- 1.17.1
- See Also:
Parser.setTrackPosition(boolean)
,Attributes.sourceRange(String)
,Node.sourceRange()
,Element.endSourceRange()
-
html
protected void html(java.lang.Appendable accum, Document.OutputSettings out) throws java.io.IOException
- Throws:
java.io.IOException
-
html
protected static void html(java.lang.String key, java.lang.String val, java.lang.Appendable accum, Document.OutputSettings out) throws java.io.IOException
- Throws:
java.io.IOException
-
htmlNoValidate
static void htmlNoValidate(java.lang.String key, java.lang.String val, java.lang.Appendable accum, Document.OutputSettings out) throws java.io.IOException
- Throws:
java.io.IOException
-
getValidKey
public static java.lang.String getValidKey(java.lang.String key, Document.OutputSettings.Syntax syntax)
-
toString
public java.lang.String toString()
Get the string representation of this attribute, implemented ashtml()
.- Overrides:
toString
in classjava.lang.Object
- Returns:
- string
-
createFromEncoded
public static Attribute createFromEncoded(java.lang.String unencodedKey, java.lang.String encodedValue)
Create a new Attribute from an unencoded key and a HTML attribute encoded value.- Parameters:
unencodedKey
- assumes the key is not encoded, as can be only run of simple \w chars.encodedValue
- HTML attribute encoded value- Returns:
- attribute
-
isDataAttribute
protected boolean isDataAttribute()
-
isDataAttribute
protected static boolean isDataAttribute(java.lang.String key)
-
shouldCollapseAttribute
protected final boolean shouldCollapseAttribute(Document.OutputSettings out)
Collapsible if it's a boolean attribute and value is empty or same as name- Parameters:
out
- output settings- Returns:
- Returns whether collapsible or not
-
shouldCollapseAttribute
protected static boolean shouldCollapseAttribute(java.lang.String key, java.lang.String val, Document.OutputSettings out)
-
isBooleanAttribute
public static boolean isBooleanAttribute(java.lang.String key)
Checks if this attribute name is defined as a boolean attribute in HTML5
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interfacejava.util.Map.Entry<java.lang.String,java.lang.String>
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacejava.util.Map.Entry<java.lang.String,java.lang.String>
- Overrides:
hashCode
in classjava.lang.Object
-
clone
public Attribute clone()
- Overrides:
clone
in classjava.lang.Object
-
-