Subversion Repositories tpanel

Rev

Rev 84 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 84 Rev 88
Line 187... Line 187...
187
    DECL_TRACER("TExpat::getElement(const string &name, int depth)");
187
    DECL_TRACER("TExpat::getElement(const string &name, int depth)");
188
 
188
 
189
    vector<_ELEMENT_t>::iterator iter, startElement;
189
    vector<_ELEMENT_t>::iterator iter, startElement;
190
    bool start = false;
190
    bool start = false;
191
 
191
 
192
    if (mLastIter != mElements.end())
192
    if (mElements.size() > 0 && mLastIter != mElements.end())
193
        startElement = mLastIter;
193
        startElement = mLastIter;
194
    else
194
    else if (mElements.size() > 0)
195
        startElement = mElements.begin();
195
        startElement = mElements.begin();
-
 
196
    else
-
 
197
    {
-
 
198
        MSG_DEBUG("Have no elements in queue!");
-
 
199
        return string();
-
 
200
    }
196
 
201
 
197
    for (iter = startElement; iter != mElements.end(); ++iter)
202
    for (iter = startElement; iter != mElements.end(); ++iter)
198
    {
203
    {
199
        if (!start && iter->depth == depth && iter->eType != _ET_END)
204
        if (!start && iter->depth == depth && iter->eType != _ET_END)
200
            start = true;
205
            start = true;
Line 285... Line 290...
285
    DECL_TRACER("TExpat::getElementIndex(const string& name, int depth)");
290
    DECL_TRACER("TExpat::getElementIndex(const string& name, int depth)");
286
 
291
 
287
    vector<_ELEMENT_t>::iterator iter;
292
    vector<_ELEMENT_t>::iterator iter;
288
    size_t idx = 0;
293
    size_t idx = 0;
289
 
294
 
-
 
295
    if (mElements.size() == 0)
-
 
296
    {
-
 
297
        mLastIter = mElements.end();
-
 
298
        return npos;
-
 
299
    }
-
 
300
 
290
    for (iter = mElements.begin(); iter != mElements.end(); ++iter)
301
    for (iter = mElements.begin(); iter != mElements.end(); ++iter)
291
    {
302
    {
292
        if (iter->eType != _ET_END && iter->name.compare(name) == 0 && iter->depth == depth)
303
        if (iter->eType != _ET_END && iter->name.compare(name) == 0 && iter->depth == depth)
293
        {
304
        {
294
            mLastIter = iter;
305
            mLastIter = iter;
Line 473... Line 484...
473
{
484
{
474
    DECL_TRACER("TExpat::getAttribute(const string& name, vector<ATTRIBUTE_t>& attrs)");
485
    DECL_TRACER("TExpat::getAttribute(const string& name, vector<ATTRIBUTE_t>& attrs)");
475
 
486
 
476
    vector<ATTRIBUTE_t>::iterator iter;
487
    vector<ATTRIBUTE_t>::iterator iter;
477
 
488
 
-
 
489
    if (attrs.size() == 0)
-
 
490
        return string();
-
 
491
 
478
    for (iter = attrs.begin(); iter != attrs.end(); ++iter)
492
    for (iter = attrs.begin(); iter != attrs.end(); ++iter)
479
    {
493
    {
480
        if (iter->name.compare(name) == 0)
494
        if (iter->name.compare(name) == 0)
481
            return iter->content;
495
            return iter->content;
482
    }
496
    }