Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–119 unchanged (119 lines)
120 }
121
122 private void copyAttributes(org.jsoup.nodes.Node source, Element el) {
123 for (Attribute attribute : source.attributes()) {
124 // valid xml attribute names are: ^[a-zA-Z_:][-a-zA-Z0-9_:.]
125 String key = attribute.getKey().replaceAll("[^-a-zA-Z0-9_:.]", "");
126 el.setAttribute(key, attribute.getValue());
127 }
128 }
129
130 /**
131 * Finds any namespaces defined in this element. Returns any tag prefix.
132 */
…lines 133–176 unchanged (44 lines)

After

…lines 1–119 unchanged (119 lines)
120 }
121
122 private void copyAttributes(org.jsoup.nodes.Node source, Element el) {
123 for (Attribute attribute : source.attributes()) {
124 // valid xml attribute names are: ^[a-zA-Z_:][-a-zA-Z0-9_:.]
125 String key = attribute.getKey().replaceAll("[^-a-zA-Z0-9_:.]", "");
126 if (key.matches("[a-zA-Z_:]{1}[-a-zA-Z0-9_:.]*"))
127 el.setAttribute(key, attribute.getValue());
128 }
129 }
130
131 /**
132 * Finds any namespaces defined in this element. Returns any tag prefix.
…lines 133–177 unchanged (45 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "helper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
identifier "Attribute"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
identifier "Attributes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "select"
. "."
identifier "NodeTraversor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "select"
. "."
identifier "NodeVisitor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Comment"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Document"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Element"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Text"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "DocumentBuilder"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "DocumentBuilderFactory"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "ParserConfigurationException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "Transformer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "TransformerException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "TransformerFactory"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "dom"
. "."
identifier "DOMSource"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "stream"
. "."
identifier "StreamResult"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "StringWriter"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "HashMap"
; ";"
block_comment "/**\n * Helper class to transform a {@link org.jsoup.nodes.Do"...
class_declaration
modifiers
public "public"
class "class"
identifier "W3CDom"
class_body
{ "{"
field_declaration
modifiers
protected "protected"
type_identifier "DocumentBuilderFactory"
variable_declarator
identifier "factory"
= "="
method_invocation
identifier "DocumentBuilderFactory"
. "."
identifier "newInstance"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * Convert a jsoup Document to a W3C Document.\n "...
method_declaration (+114 nodes collapsed)
block_comment "/**\n * Converts a jsoup document into the provided W3C D"...
method_declaration (+117 nodes collapsed)
block_comment "/**\n * Implements the conversion by walking the input.\n "...
class_declaration
modifiers
protected "protected"
static "static"
class "class"
identifier "W3CBuilder"
super_interfaces
implements "implements"
type_list
type_identifier "NodeVisitor"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "xmlnsKey"
= "="
string_literal
" "\""
string_fragment "xmlns"
" "\""
; ";"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "xmlnsPrefix"
= "="
string_literal
" "\""
string_fragment "xmlns:"
" "\""
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Document"
variable_declarator
identifier "doc"
; ";"
field_declaration (+29 nodes collapsed)
line_comment "// prefix => urn"
field_declaration
modifiers
private "private"
type_identifier "Element"
variable_declarator
identifier "dest"
; ";"
constructor_declaration (+22 nodes collapsed)
method_declaration (+428 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration
modifiers
private "private"
void_type "void"
identifier "copyAttributes"
formal_parameters
( "("
formal_parameter
scoped_type_identifier
scoped_type_identifier
scoped_type_identifier
type_identifier "org"
. "."
type_identifier "jsoup"
. "."
type_identifier "nodes"
. "."
type_identifier "Node"
identifier "source"
, ","
formal_parameter
type_identifier "Element"
identifier "el"
) ")"
block
{ "{"
enhanced_for_statement
for "for"
( "("
type_identifier "Attribute"
identifier "attribute"
: ":"
method_invocation
identifier "source"
. "."
identifier "attributes"
argument_list
( "("
) ")"
) ")"
block
{ "{"
line_comment "// valid xml attribute names are: ^[a-zA-Z_:][-a-zA-Z0-9_:.]"
local_variable_declaration (+27 nodes collapsed)
expression_statement
method_invocation
identifier "el"
. "."
identifier "setAttribute"
argument_list
( "("
identifier "key"
, ","
method_invocation
identifier "attribute"
. "."
identifier "getValue"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
} "}"
block_comment "/**\n * Finds any namespaces defined in this element."...
method_declaration (+206 nodes collapsed)
} "}"
block_comment "/**\n * Serialize a W3C document to a String.\n * @par"...
method_declaration (+126 nodes collapsed)
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "helper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
identifier "Attribute"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "nodes"
. "."
identifier "Attributes"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "select"
. "."
identifier "NodeTraversor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "jsoup"
. "."
identifier "select"
. "."
identifier "NodeVisitor"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Comment"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Document"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Element"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "org"
. "."
identifier "w3c"
. "."
identifier "dom"
. "."
identifier "Text"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "DocumentBuilder"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "DocumentBuilderFactory"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "parsers"
. "."
identifier "ParserConfigurationException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "Transformer"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "TransformerException"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "TransformerFactory"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "dom"
. "."
identifier "DOMSource"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "xml"
. "."
identifier "transform"
. "."
identifier "stream"
. "."
identifier "StreamResult"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "io"
. "."
identifier "StringWriter"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "HashMap"
; ";"
block_comment "/**\n * Helper class to transform a {@link org.jsoup.nodes.Do"...
class_declaration
modifiers
public "public"
class "class"
identifier "W3CDom"
class_body
{ "{"
field_declaration
modifiers
protected "protected"
type_identifier "DocumentBuilderFactory"
variable_declarator
identifier "factory"
= "="
method_invocation
identifier "DocumentBuilderFactory"
. "."
identifier "newInstance"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * Convert a jsoup Document to a W3C Document.\n "...
method_declaration (+114 nodes collapsed)
block_comment "/**\n * Converts a jsoup document into the provided W3C D"...
method_declaration (+117 nodes collapsed)
block_comment "/**\n * Implements the conversion by walking the input.\n "...
class_declaration
modifiers
protected "protected"
static "static"
class "class"
identifier "W3CBuilder"
super_interfaces
implements "implements"
type_list
type_identifier "NodeVisitor"
class_body
{ "{"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "xmlnsKey"
= "="
string_literal
" "\""
string_fragment "xmlns"
" "\""
; ";"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "xmlnsPrefix"
= "="
string_literal
" "\""
string_fragment "xmlns:"
" "\""
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Document"
variable_declarator
identifier "doc"
; ";"
field_declaration (+29 nodes collapsed)
line_comment "// prefix => urn"
field_declaration
modifiers
private "private"
type_identifier "Element"
variable_declarator
identifier "dest"
; ";"
constructor_declaration (+22 nodes collapsed)
method_declaration (+428 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration
modifiers
private "private"
void_type "void"
identifier "copyAttributes"
formal_parameters
( "("
formal_parameter
scoped_type_identifier
scoped_type_identifier
scoped_type_identifier
type_identifier "org"
. "."
type_identifier "jsoup"
. "."
type_identifier "nodes"
. "."
type_identifier "Node"
identifier "source"
, ","
formal_parameter
type_identifier "Element"
identifier "el"
) ")"
block
{ "{"
enhanced_for_statement
for "for"
( "("
type_identifier "Attribute"
identifier "attribute"
: ":"
method_invocation
identifier "source"
. "."
identifier "attributes"
argument_list
( "("
) ")"
) ")"
block
{ "{"
line_comment "// valid xml attribute names are: ^[a-zA-Z_:][-a-zA-Z0-9_:.]"
local_variable_declaration (+27 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
identifier "key"
. "."
identifier "matches"
argument_list
( "("
string_literal
" "\""
string_fragment "[a-zA-Z_:]{1}[-a-zA-Z0-9_:.]*"
" "\""
) ")"
) ")"
expression_statement
method_invocation
identifier "el"
. "."
identifier "setAttribute"
argument_list
( "("
identifier "key"
, ","
method_invocation
identifier "attribute"
. "."
identifier "getValue"
argument_list
( "("
) ")"
) ")"
; ";"
} "}"
} "}"
block_comment "/**\n * Finds any namespaces defined in this element."...
method_declaration (+206 nodes collapsed)
} "}"
block_comment "/**\n * Serialize a W3C document to a String.\n * @par"...
method_declaration (+126 nodes collapsed)
} "}"