ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> Tclxml-users
Tclxml-users
Re: [Tclxml-users] wrong display of not nested,emtpy divs
by Steve Ball other posts by this author
Nov 24 2004 8:40PM messages near this date
[Tclxml-users] wrong display of not nested,emtpy divs | [Tclxml-users] help: beginner
Firstly, in your script you reused the "div" variable, thus creating 
two <div>  elements but the variable refers to the second instance when 
the text is added.  That's why the first <div>  is an empty element.

Secondly, the use of empty element syntax when the method is set to 
"html" is a bug; please submit a bug report on SourceForge.

Cheers,
Steve Ball

On 24/11/2004, at 11:14 PM, Detlef Groth wrote:

> 
>  Hello,
> 
>  for a web application I build a dom-tree in memory and depending on
>  user input I hide or display certain parts of the dom-tree.
> 
>  Sample session to create the document:
>  (tclkit) 2 % package require xml::tcl
>  3.0
>  (tclkit) 3 %   set doc [dom::DOMImplementation create]
>  invalid command name "dom::DOMImplementation"
>  (tclkit) 4 % package require dom
>  3.0
>  (tclkit) 5 %   set doc [dom::DOMImplementation create]
>  ::dom::tcl::document1::Document
>  (tclkit) 6 %    set top [dom::document createElement $doc html]
>  ::dom::tcl::document1::node2
>  (tclkit) 7 %     set head [dom::document createElement $top head]
>  ::dom::tcl::document1::node6
>  (tclkit) 8 %     set title [dom::document createElement $head title]
>  ::dom::tcl::document1::node10
>  (tclkit) 9 %     set titleText [dom::document createTextNode $title 
>  "MPIMG Berlin - Mouse Database"]
>  ::dom::tcl::document1::node14
>  (tclkit) 10 %    set body [dom::document createElement $top body]
>  ::dom::tcl::document1::node18
>  (tclkit) 11 %     set div [dom::document createElement $body div]
>  ::dom::tcl::document1::node22
>  (tclkit) 12 % dom::element setAttribute $div style display:none;
>  display:none
>  (tclkit) 13 %     set div [dom::document createElement $body div]
>  ::dom::tcl::document1::node27
>  (tclkit) 14 % [dom::document createTextNode $div Test]
>  wrong # args: should be "::dom::tcl::document1::node31 method args"
>  (tclkit) 15 % dom::document createTextNode $div Test
>  ::dom::tcl::document1::node35
>  (tclkit) 16 % $doc serialize -html
>  unknown method "serialize"
>  (tclkit) 17 % dom::serialize $doc -method "html"
>  <?xml version='1.0'?>
>  <!DOCTYPE html>
>  <html><head><title>MPIMG Berlin - Mouse 
>  Database</title></head><body><div 
>  style="display:none"/><div>TestTest</div></body></html>
>  (tclkit) 18 % dom::serialize $doc -method "html" -indent
>  list must have an even number of elements
>  (tclkit) 19 % dom::serialize $doc -method "html" -indent 2
>  <?xml version='1.0'?>
>  <!DOCTYPE html>
> 
>      <html>
>        <head>
>  	<title>MPIMG Berlin - Mouse Database</title>
>        </head>
>        <body>
>  	<div style="display:none"/>
>  	<div>TestTest</div>
>        </body>
>      </html>
> 
> 
> 
>  both outputs did not render the text although the TestTest-text is not
>  a parent of the display:none-div.
> 
>  if we change the html-code manually to
> 
>    <html>
>        <head>
>  	<title>MPIMG Berlin - Mouse Database</title>
>        </head>
>        <body>
>  	<div style="display:none"></div>
>  	<div>TestTest</div>
>        </body>
>      </html>
> 
>  which should be the same than it renders right. So my adivise is to
>  change the following:
>  $ diff /d/tcl-lib/tcldom3.0/dom.tcl 
>  ~/cvs/tclhttpd/customlib/tcldom3.0/dom.tcl
>  ... some other stuff
> 
>  <
>  <       append result />$newline
>  ---
> >         # dgroth fixes bad browser behaviour with <div 
> > style='display:none'/> tags
> >       append result "></$nsPrefix$node(node:localName)>$newline"
> 
>  Or at least allow a option with serialize like:
> 
>  ::dom::DOMImplementation serialize $doc -emptytags false
> 
>  I think with tdom this is the default because I did not observe this
>  missbehaviour (of modern browsers) until now.
> 
>  regards,
>  Detlef
> 
>  -- 
>  Dr. Detlef Groth
>  Max-Planck-Institut
>  fuer Molekulare Genetik
>  Ihnestr. 63/73
>  D-14195 Berlin
>  Tel.: + 49 30 - 8413 1235
> 
> 
>  -------------------------------------------------------
>  SF email is sponsored by - The IT Product Guide
>  Read honest & candid reviews on hundreds of IT Products from real 
>  users.
>  Discover which products truly live up to the hype. Start reading now.
>  http://productguide.itmanagersjournal.com/
>  _______________________________________________
>  Tclxml-users mailing list
>  Tclxml-users@[...].net
>  https://lists.sourceforge.net/lists/listinfo/tclxml-users
> 
> 

---

Steve Ball            |   XSLT Standard Library   | Training & Seminars
Zveno Pty Ltd         |     Web Tcl Complete      |   XML XSL Schemas
http://www.zveno.com/ |      TclXML TclDOM        | Tcl, Web Development
Steve.Ball@[...].com  +---------------------------+---------------------
Ph. +61 2 6242 4099   |   Mobile (0413) 594 462   | Fax +61 2 6242 4099



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
Tclxml-users mailing list
Tclxml-users@[...].net
https://lists.sourceforge.net/lists/listinfo/tclxml-users
Thread:
Detlef Groth
Steve Ball

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved