Ejemplo n.º 1
0
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);
   }
}
Ejemplo n.º 2
0
/**************************************************************
功能:处理根节点信息 按照宽度搜索
***************************************************************/
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
	}
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
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;
}
}
Ejemplo n.º 7
0
	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;
}
Ejemplo n.º 8
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);
   }
}