Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   XML (http://www.velocityreviews.com/forums/f32-xml.html)
-   -   Few Questions about org.w3c.dom.Element (http://www.velocityreviews.com/forums/t604927-few-questions-about-org-w3c-dom-element.html)

RC 04-10-2008 09:16 PM

Few Questions about org.w3c.dom.Element
 
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!

Mike Schilling 04-10-2008 09:31 PM

Re: Few Questions about org.w3c.dom.Element
 

"RC" <raymond.chui@nospam.noaa.gov> wrote in message
news:ftm02s$ln2$1@news.nems.noaa.gov...
> 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.



Joshua Cranmer 04-10-2008 09:40 PM

Re: Few Questions about org.w3c.dom.Element
 
RC wrote:
> 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.

--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth

Joseph J. Kesselman 04-10-2008 09:43 PM

Re: Few Questions about org.w3c.dom.Element
 
> 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.


All times are GMT. The time now is 03:17 PM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57