void DisplayNode(TXMLEngine* xml, XMLNodePointer_t node, Int_t level) { // this function display all accessible information about xml node and its childs printf("%*c node: %s\n",level,' ', xml->GetNodeName(node)); // display namespace XMLNsPointer_t ns = xml->GetNS(node); if (ns!=0) printf("%*c namespace: %s refer: %s\n",level+2,' ', xml->GetNSName(ns), xml->GetNSReference(ns)); // display attributes XMLAttrPointer_t attr = xml->GetFirstAttr(node); while (attr!=0) { printf("%*c attr: %s value: %s\n",level+2,' ', xml->GetAttrName(attr), xml->GetAttrValue(attr)); attr = xml->GetNextAttr(attr); } // display content (if exists) const char* content = xml->GetNodeContent(node); if (content!=0) printf("%*c cont: %s\n",level+2,' ', content); // display all child nodes XMLNodePointer_t child = xml->GetChild(node); while (child!=0) { DisplayNode(xml, child, level+2); child = xml->GetNext(child); } }
/************************************************************** 功能:处理根节点信息 按照宽度搜索 ***************************************************************/ void HandleInitNode(WEBNODE * node) { WEBNODE * CurrentNode = 0; CurrentNode = node; if(CurrentNode) { while(CurrentNode) { if(CurrentNode->IsHandled == 0) { HandOneNode(CurrentNode); if(DEBUG) { fprintf(stdout, "\nDisplay.%5d:", FileNumber); DisplayNode(NodeHeader); /* display every node */ } } CurrentNode = CurrentNode->brother; }// while CurrentNode = node; while(CurrentNode) { if(CurrentNode->child && CurrentNode->child->IsHandled == 0) { HandleInitNode(CurrentNode->child); } CurrentNode = CurrentNode->brother; }// while } }
int main(int argc, char ** argv) { int WebPort; char * WebHost = 0, * PageAddress = 0, * WebDir = 0; if(argc < 2) {if(DEBUG) fprintf(stdout, "Command error, you should input like this:\n\t%s WebPageAddress1 WebPageAddress2 WebPageAddress3 ...", argv[0]); exit(0);} NodeHeader = NodeTail = NodeCurr = 0; //开启mysql链接 mycon_init(); for(i = 1; i < argc; i++) { ret = GetHost(argv[i], &WebHost, &PageAddress, &WebPort, &WebDir); /* Get web page info */ if(ret) {if(DEBUG) fprintf(stdout, "GetHost error from '%s'\n", argv[i]); exit(0);} AddInitNode(WebHost, PageAddress, WebPort, WebDir); /* add this page to chain */ } free(WebHost); free(PageAddress);free(WebDir); if(DEBUG) { fprintf(stdout, "\nDisplay.%5d:", FileNumber); DisplayNode(NodeHeader); /* display every node */ } HandleInitNode(NodeHeader); /* handle every page */ //关闭mysql链接 mycon_close(); return 0; }
void runenginexml(const char* filename = "main.xml") { // First create engine TXMLEngine* xml = new TXMLEngine; // Now try to parse xml file // Only file with restricted xml syntax are supported XMLDocPointer_t xmldoc = xml->ParseFile(filename); if (xmldoc==0) { delete xml; std::cerr << "Fail to parse " << filename << std::endl; return; } // take access to main node XMLNodePointer_t mainnode = xml->DocGetRootElement(xmldoc); // display recursively all nodes and subnodes DisplayNode(xml, mainnode, 1); // Release memory before exit xml->FreeDoc(xmldoc); delete xml; return; }
int _tmain(int argc, _TCHAR* argv[]) { printf("Sample list"); struct node * head = NULL; // Build linked list with random numbers BuildList(&head); DisplayNode(head); // Reverse the linked list RecursiveReverse(&head); DisplayNode(head); //Sorted Insert into a new list DisplayNode(head); int a; scanf_s("adasd",&a); return 0; }
/************************************************************** 功能:显示年有节点信息 ***************************************************************/ void DisplayNode(WEBNODE * NodeHeader) { WEBNODE * TempNode; TempNode = NodeHeader; fprintf(stdout, "\n"); while(TempNode) { if(!strcmp(TempNode->dir, "/")) fprintf(stdout, "\t%s:%d%s%s => %s %d\n", TempNode->host, TempNode->port, TempNode->dir, strcmp(TempNode->page, "@")?TempNode->page:"", TempNode->file, TempNode->IsHandled); else fprintf(stdout, "\t%s:%d/%s/%s => %s %d\n", TempNode->host, TempNode->port, TempNode->dir, strcmp(TempNode->page, "@")?TempNode->page:"", TempNode->file, TempNode->IsHandled); TempNode = TempNode->brother; } TempNode = NodeHeader; while(TempNode) { if(TempNode->child) DisplayNode(TempNode->child); TempNode = TempNode->brother; } }
int main() {struct node *start=NULL; int n,q; int ch,m; while(1) {printf("\nMENU\n"); printf("\n1.Enter the two data at beg\n"); printf("\n2.Enter the 2 data at end"); printf("\n3.Enter yhe 2 data at betwn"); printf("\n4.Display the data"); printf("\n5.Exit"); printf("\nEnter the choice\n"); scanf("%d",&ch); switch(ch) {case 1: printf("Enter the the value\n"); scanf("%d %d",&n,&q); AddNode(n); AddNode(q); break; case 3: printf("Enter the data after which u have to insert\n"); scanf("%d",&m); printf("Enter the the value\n"); scanf("%d %d",&n,&q); Addbetwn(m,n); Addbetwn(m,q); break; case 2: printf("Enter the the value\n"); scanf("%d %d",&n,&q); Addend(n); Addend(q); break; case 4: DisplayNode(); break; case 5: printf("%c%c%c Thank You %c%c%c",5,5,5,5,5,5); break; default: printf("Wrong choice\n"); } } return 0; }
void DisplayNode(TXMLEngine* xml, XMLNodePointer_t node, Int_t level) { // this function display all accessible information about xml node and its children // display node with content if (xml->IsContentNode(node)) { printf("%*c content: %s\n",level,' ', xml->GetNodeName(node)); return; } if (xml->IsCommentNode(node)) { printf("%*c comment: %s\n",level,' ', xml->GetNodeName(node)); return; } if (!xml->IsXmlNode(node)) return; printf("%*c node: %s\n",level,' ', xml->GetNodeName(node)); // display namespace XMLNsPointer_t ns = xml->GetNS(node); if (ns!=0) printf("%*c namespace: %s refer: %s\n",level+2,' ', xml->GetNSName(ns), xml->GetNSReference(ns)); // display attributes XMLAttrPointer_t attr = xml->GetFirstAttr(node); while (attr!=0) { printf("%*c attr: %s value: %s\n",level+2,' ', xml->GetAttrName(attr), xml->GetAttrValue(attr)); attr = xml->GetNextAttr(attr); } // display all child nodes (including special nodes) XMLNodePointer_t child = xml->GetChild(node, kFALSE); while (child!=0) { DisplayNode(xml, child, level+2); child = xml->GetNext(child, kFALSE); } }