Few Questions about org.w3c.dom.Element

R

RC

In that org.w3c.dom.Element interface

I can getTagName()
But
1) How do I do know is it an empty tag or not?

<tag ..... />

2) How do I know when will be a close tag?

<tag1>
<tag2>xxxx</tag2>
<tag3 ..... />
<tag4 ..... />xxxxx</tag4>
.......
</tag1>

Thank Q very much in advance!
 
M

Mike Schilling

RC said:
In that org.w3c.dom.Element interface

I can getTagName()
But
1) How do I do know is it an empty tag or not?

<tag ..... />

2) How do I know when will be a close tag?

<tag1>
<tag2>xxxx</tag2>
<tag3 ..... />
<tag4 ..... />xxxxx</tag4>
......
</tag1>

Thank Q very much in advance!

org.w3c.dom.Element doesn't represent the start tag; it represents the
entire element. Anything occuring between the start and end tag will beomce
children of that element. E.g.

<start>This is <i>italicized</i>text.</start>

resluts in five Nodes:

1. An Element with the tag name "start"
2. A Text with the node value "This is "
3. An Element with tag name "i"
4. A Text with the node value "italicized"
5. A Text with the node value "text."

2, 3, and 5 are (in that order) the child node of 1. 4 is the child of 3.

And in DOM, there's no way to distinugish between, say,

<start></start>

and

<start/>

In both case, you see an Element wth no children.
 
J

Joshua Cranmer

RC said:
In that org.w3c.dom.Element interface

Ah, so this is a question on the DOM.
I can getTagName()
But
1) How do I do know is it an empty tag or not?

<tag ..... />

<tag></tag> and <tag /> are the same thing as far as the DOM is closed.
That is the job of the parser, and is generally not important. However,
one can detect a state equivalent to said tag by checking for any
children of node type TEXT_NODE.
2) How do I know when will be a close tag?

<tag1>
<tag2>xxxx</tag2>
<tag3 ..... />
<tag4 ..... />xxxxx</tag4>
......
</tag1>

You seem to be parsing XML. The DOM is wholly an in-memory
representation, whereas XML is a text format representation of the same
tree. Therefore no close tags exist in the DOM. The example you give
will be noted in the DOM as such:

Element tag1
|
+-- Element tag2
| |
| +-- Text node "xxxx"
|
+-- Element tag3
| |
| +-- Attribute attr1 value val1
|
+-- Element tag4
| |
| +-- Attribute attr1 value val1
| |
| +-- Text node "xxxxx"
|
< other elements, text nodes, etc. >

No close tags are needed nor involved.
 
J

Joseph J. Kesselman

1) How do I do know is it an empty tag or not?
<tag ..... />

XML doesn't distinguish between <tag></tag> and <tag/>. Nor does the
DOM. If you want to know whether it has content, check whether it has
children.
2) How do I know when will be a close tag?

Don't think in terms of tags. Think in terms of elements. An element is
made up of an open tag and its close tag, or a self-closing tag -- as I
just said, they're the same thing. Everything inside it is its children.
There is no separate representation of the close tag.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top