xref: /aosp_15_r20/external/lzma/CPP/Common/MyXml.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // MyXml.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_MY_XML_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_MY_XML_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "MyString.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker struct CXmlProp
9*f6dc9357SAndroid Build Coastguard Worker {
10*f6dc9357SAndroid Build Coastguard Worker   AString Name;
11*f6dc9357SAndroid Build Coastguard Worker   AString Value;
12*f6dc9357SAndroid Build Coastguard Worker };
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker class CXmlItem
15*f6dc9357SAndroid Build Coastguard Worker {
16*f6dc9357SAndroid Build Coastguard Worker public:
17*f6dc9357SAndroid Build Coastguard Worker   AString Name;
18*f6dc9357SAndroid Build Coastguard Worker   bool IsTag;
19*f6dc9357SAndroid Build Coastguard Worker   CObjectVector<CXmlProp> Props;
20*f6dc9357SAndroid Build Coastguard Worker   CObjectVector<CXmlItem> SubItems;
21*f6dc9357SAndroid Build Coastguard Worker 
22*f6dc9357SAndroid Build Coastguard Worker   const char * ParseItem(const char *s, int numAllowedLevels);
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker   bool IsTagged(const char *tag) const throw();
25*f6dc9357SAndroid Build Coastguard Worker   int FindProp(const char *propName) const throw();
26*f6dc9357SAndroid Build Coastguard Worker   AString GetPropVal(const char *propName) const;
27*f6dc9357SAndroid Build Coastguard Worker   AString GetSubString() const;
28*f6dc9357SAndroid Build Coastguard Worker   const AString * GetSubStringPtr() const throw();
29*f6dc9357SAndroid Build Coastguard Worker   int FindSubTag(const char *tag) const throw();
30*f6dc9357SAndroid Build Coastguard Worker   const CXmlItem *FindSubTag_GetPtr(const char *tag) const throw();
31*f6dc9357SAndroid Build Coastguard Worker   AString GetSubStringForTag(const char *tag) const;
32*f6dc9357SAndroid Build Coastguard Worker   void AppendTo(AString &s) const;
33*f6dc9357SAndroid Build Coastguard Worker };
34*f6dc9357SAndroid Build Coastguard Worker 
35*f6dc9357SAndroid Build Coastguard Worker struct CXml
36*f6dc9357SAndroid Build Coastguard Worker {
37*f6dc9357SAndroid Build Coastguard Worker   CXmlItem Root;
38*f6dc9357SAndroid Build Coastguard Worker 
39*f6dc9357SAndroid Build Coastguard Worker   bool Parse(const char *s);
40*f6dc9357SAndroid Build Coastguard Worker   // void AppendTo(AString &s) const;
41*f6dc9357SAndroid Build Coastguard Worker };
42*f6dc9357SAndroid Build Coastguard Worker 
43*f6dc9357SAndroid Build Coastguard Worker void z7_xml_DecodeString(AString &s);
44*f6dc9357SAndroid Build Coastguard Worker 
45*f6dc9357SAndroid Build Coastguard Worker #endif
46