NCBI C++ ToolKit
xmlmisc.h
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: xmlmisc.h 98335 2022-10-30 19:43:34Z stakhovv $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * File Name: xmlmisc.h
27  *
28  * Author: Alexey Dobronadezhdin
29  *
30  * File Description:
31  * XML functionality from C-toolkit.
32  */
33 
34 #ifndef XMLMISC_H
35 #define XMLMISC_H
36 
37 #include "valnode.h"
38 /* Simple XML Parsing */
39 
41 
42 struct XmlObj {
43  char* name = nullptr;
44  char* contents = nullptr;
45  short level = 0;
46  XmlObj* attributes = nullptr;
47  XmlObj* children = nullptr;
48  XmlObj* next = nullptr;
49  XmlObj* parent = nullptr;
50  XmlObj* successor = nullptr; /* linearizes a recursive exploration */
51 };
52 using XmlObjPtr = XmlObj*;
53 
54 typedef void (*VisitXmlNodeFunc)(XmlObjPtr xop, XmlObjPtr parent, short level, void* userdata);
55 
58 int VisitXmlNodes(XmlObjPtr xop, void* userdata, VisitXmlNodeFunc callback, char* nodeFilter, char* parentFilter, char* attrTagFilter, char* attrValFilter, short maxDepth);
59 
61 
62 #endif
static const char * str(char *buf, int n)
Definition: stats.c:84
char Char
Alias for char.
Definition: ncbitype.h:93
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
Definition: xmlmisc.h:42
short level
Definition: xmlmisc.h:45
XmlObj * next
Definition: xmlmisc.h:48
XmlObj * successor
Definition: xmlmisc.h:50
XmlObj * attributes
Definition: xmlmisc.h:46
XmlObj * children
Definition: xmlmisc.h:47
XmlObj * parent
Definition: xmlmisc.h:49
char * name
Definition: xmlmisc.h:43
char * contents
Definition: xmlmisc.h:44
void(* VisitXmlNodeFunc)(XmlObjPtr xop, XmlObjPtr parent, short level, void *userdata)
Definition: xmlmisc.h:54
XmlObjPtr ParseXmlString(const Char *str)
Definition: xmlmisc.cpp:518
XmlObjPtr FreeXmlObject(XmlObjPtr xop)
Definition: xmlmisc.cpp:487
int VisitXmlNodes(XmlObjPtr xop, void *userdata, VisitXmlNodeFunc callback, char *nodeFilter, char *parentFilter, char *attrTagFilter, char *attrValFilter, short maxDepth)
Definition: xmlmisc.cpp:625
Modified on Thu May 09 18:36:41 2024 by modify_doxy.py rev. 669887