rlm@1
|
1 // MyXml.h
|
rlm@1
|
2
|
rlm@1
|
3 #ifndef __MYXML_H
|
rlm@1
|
4 #define __MYXML_H
|
rlm@1
|
5
|
rlm@1
|
6 #include "MyString.h"
|
rlm@1
|
7
|
rlm@1
|
8 struct CXmlProp
|
rlm@1
|
9 {
|
rlm@1
|
10 AString Name;
|
rlm@1
|
11 AString Value;
|
rlm@1
|
12 };
|
rlm@1
|
13
|
rlm@1
|
14 class CXmlItem
|
rlm@1
|
15 {
|
rlm@1
|
16 bool ParseItems(const AString &s, int &pos, int numAllowedLevels);
|
rlm@1
|
17
|
rlm@1
|
18 public:
|
rlm@1
|
19 AString Name;
|
rlm@1
|
20 bool IsTag;
|
rlm@1
|
21 CObjectVector<CXmlProp> Props;
|
rlm@1
|
22 CObjectVector<CXmlItem> SubItems;
|
rlm@1
|
23
|
rlm@1
|
24 bool ParseItem(const AString &s, int &pos, int numAllowedLevels);
|
rlm@1
|
25
|
rlm@1
|
26 bool IsTagged(const AString &tag) const;
|
rlm@1
|
27 int FindProperty(const AString &propName) const;
|
rlm@1
|
28 AString GetPropertyValue(const AString &propName) const;
|
rlm@1
|
29 AString GetSubString() const;
|
rlm@1
|
30 int FindSubTag(const AString &tag) const;
|
rlm@1
|
31 AString GetSubStringForTag(const AString &tag) const;
|
rlm@1
|
32 };
|
rlm@1
|
33
|
rlm@1
|
34 struct CXml
|
rlm@1
|
35 {
|
rlm@1
|
36 CXmlItem Root;
|
rlm@1
|
37 bool Parse(const AString &s);
|
rlm@1
|
38 };
|
rlm@1
|
39
|
rlm@1
|
40 #endif
|