HTML Tidy  5.0.0
The HTACG Tidy HTML Project
Document Tree

A parsed and, optionally, repaired document is represented by Tidy as a Tree, much like a W3C DOM. More...


TidyAttr TIDY_CALL tidyAttrFirst (TidyNode tnod)
ctmbstr TIDY_CALL tidyAttrName (TidyAttr tattr)
TidyAttr TIDY_CALL tidyAttrNext (TidyAttr tattr)
ctmbstr TIDY_CALL tidyAttrValue (TidyAttr tattr)
TidyNode TIDY_CALL tidyGetBody (TidyDoc tdoc)
TidyNode TIDY_CALL tidyGetChild (TidyNode tnod)
TidyNode TIDY_CALL tidyGetHead (TidyDoc tdoc)
TidyNode TIDY_CALL tidyGetHtml (TidyDoc tdoc)
TidyNode TIDY_CALL tidyGetNext (TidyNode tnod)
TidyNode TIDY_CALL tidyGetParent (TidyNode tnod)
TidyNode TIDY_CALL tidyGetPrev (TidyNode tnod)
TidyNode TIDY_CALL tidyGetRoot (TidyDoc tdoc)

Detailed Description

A parsed and, optionally, repaired document is represented by Tidy as a Tree, much like a W3C DOM.

This tree may be traversed using these functions. The following snippet gives a basic idea how these functions can be used.

void dumpNode( TidyNode tnod, int indent )
  TidyNode child;
  for ( child = tidyGetChild(tnod); child; child = tidyGetNext(child) )
    ctmbstr name;
    switch ( tidyNodeGetType(child) )
    case TidyNode_Root:       name = "Root";                    break;
    case TidyNode_DocType:    name = "DOCTYPE";                 break;
    case TidyNode_Comment:    name = "Comment";                 break;
    case TidyNode_ProcIns:    name = "Processing Instruction";  break;
    case TidyNode_Text:       name = "Text";                    break;
    case TidyNode_CDATA:      name = "CDATA";                   break;
    case TidyNode_Section:    name = "XML Section";             break;
    case TidyNode_Asp:        name = "ASP";                     break;
    case TidyNode_Jste:       name = "JSTE";                    break;
    case TidyNode_Php:        name = "PHP";                     break;
    case TidyNode_XmlDecl:    name = "XML Declaration";         break;
    case TidyNode_Start:
    case TidyNode_End:
    case TidyNode_StartEnd:
      name = tidyNodeGetName( child );
    assert( name != NULL );
    printf( "\%*.*sNode: \%s\\n", indent, indent, " ", name );
    dumpNode( child, indent + 4 );
void dumpDoc( TidyDoc tdoc )
  dumpNode( tidyGetRoot(tdoc), 0 );
void dumpBody( TidyDoc tdoc )
  dumpNode( tidyGetBody(tdoc), 0 );

Function Documentation

TidyAttr TIDY_CALL tidyAttrFirst ( TidyNode  tnod)
ctmbstr TIDY_CALL tidyAttrName ( TidyAttr  tattr)
TidyAttr TIDY_CALL tidyAttrNext ( TidyAttr  tattr)
ctmbstr TIDY_CALL tidyAttrValue ( TidyAttr  tattr)
TidyNode TIDY_CALL tidyGetBody ( TidyDoc  tdoc)
TidyNode TIDY_CALL tidyGetChild ( TidyNode  tnod)
TidyNode TIDY_CALL tidyGetHead ( TidyDoc  tdoc)
TidyNode TIDY_CALL tidyGetHtml ( TidyDoc  tdoc)
TidyNode TIDY_CALL tidyGetNext ( TidyNode  tnod)
TidyNode TIDY_CALL tidyGetParent ( TidyNode  tnod)
TidyNode TIDY_CALL tidyGetPrev ( TidyNode  tnod)
TidyNode TIDY_CALL tidyGetRoot ( TidyDoc  tdoc)