Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(xml_tag), | intent(inout) | :: | self | XML tag. |
||
character(len=*), | intent(in), | optional | :: | name | Tag name. |
|
character(len=*), | intent(in), | optional | :: | attribute(1:) | Attribute name/value pair [1:2]. |
|
character(len=*), | intent(in), | optional | :: | attributes(1:,1:) | Attributes list of name/value pairs [1:2,1:]. |
|
character(len=*), | intent(in), | optional | :: | attributes_stream | Attributes list of name/value pairs as single stream. |
|
logical, | intent(in), | optional | :: | sanitize_attributes_value | Sanitize attributes value. |
|
character(len=*), | intent(in), | optional | :: | content | Tag value. |
|
integer(kind=I4P), | intent(in), | optional | :: | indent | Number of indent-white-spaces. |
|
logical, | intent(in), | optional | :: | is_content_indented | Activate value indentation. |
|
logical, | intent(in), | optional | :: | is_self_closing | The tag is self closing. |
Set tag data.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | is_content_indented_ | Activate value indentation. |
pure subroutine set(self, name, attribute, attributes, attributes_stream, sanitize_attributes_value, content, &
indent, is_content_indented, is_self_closing)
!---------------------------------------------------------------------------------------------------------------------------------
!< Set tag data.
!---------------------------------------------------------------------------------------------------------------------------------
class(xml_tag), intent(inout) :: self !< XML tag.
character(*), intent(in), optional :: name !< Tag name.
character(*), intent(in), optional :: attribute(1:) !< Attribute name/value pair [1:2].
character(*), intent(in), optional :: attributes(1:,1:) !< Attributes list of name/value pairs [1:2,1:].
character(*), intent(in), optional :: attributes_stream !< Attributes list of name/value pairs as single stream.
logical, intent(in), optional :: sanitize_attributes_value !< Sanitize attributes value.
character(*), intent(in), optional :: content !< Tag value.
integer(I4P), intent(in), optional :: indent !< Number of indent-white-spaces.
logical, intent(in), optional :: is_content_indented !< Activate value indentation.
logical, intent(in), optional :: is_self_closing !< The tag is self closing.
logical :: is_content_indented_ !< Activate value indentation.
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
if (present(name)) self%tag_name = name
if (present(attribute)) call self%add_single_attribute(attribute=attribute, sanitize_value=sanitize_attributes_value)
if (present(attributes)) call self%add_multiple_attributes(attributes=attributes, sanitize_values=sanitize_attributes_value)
if (present(attributes_stream)) call self%add_stream_attributes(attributes_stream=attributes_stream, &
sanitize_values=sanitize_attributes_value)
if (present(indent)) self%indent = indent
if (present(content)) then
is_content_indented_ = .false. ; if (present(is_content_indented)) is_content_indented_ = is_content_indented
if (is_content_indented_) then
self%tag_content = new_line('a')//repeat(' ', self%indent+2)//content//new_line('a')
else
self%tag_content = content
endif
endif
if (present(is_self_closing)) self%is_self_closing = is_self_closing
!---------------------------------------------------------------------------------------------------------------------------------
endsubroutine set