source: icXML/icXML-devel/src/xercesc/dom/impl/DOMNodeListImpl.cpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 1.7 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: DOMNodeListImpl.cpp 671894 2008-06-26 13:29:21Z borisk $
20 */
21
22
23#include <xercesc/util/XercesDefs.hpp>
24#include "DOMNodeListImpl.hpp"
25#include "DOMCasts.hpp"
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29
30// revisit
31//   this implementation is too stupid - needs a cache of some kind.
32//
33
34DOMNodeListImpl::DOMNodeListImpl(DOMParentNode *node)
35:   fNode(node)
36{
37}
38
39
40DOMNodeListImpl:: ~DOMNodeListImpl()
41{
42}
43
44
45
46XMLSize_t DOMNodeListImpl::getLength() const{
47    XMLSize_t count = 0;
48    if (fNode) {
49        DOMNode *node = fNode->fFirstChild;
50        while(node != 0){
51            ++count;
52            node = castToChildImpl(node)->nextSibling;
53        }
54    }
55
56    return count;
57}
58
59
60
61DOMNode *DOMNodeListImpl::item(XMLSize_t index) const{
62    if (fNode) {
63        DOMNode *node = fNode->fFirstChild;
64        for(XMLSize_t i=0; i<index && node!=0; ++i)
65            node = castToChildImpl(node)->nextSibling;
66        return node;
67    }
68    return 0;
69}
70
71
72XERCES_CPP_NAMESPACE_END
Note: See TracBrowser for help on using the repository browser.