/*
*******************************************************************************
*
-* Copyright (C) 2004-2008, International Business Machines
+* Copyright (C) 2004-2010, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
UXMLParser::scanContent(UErrorCode &status) {
UnicodeString result;
if (mXMLCharData.lookingAt(fPos, status)) {
- result = mXMLCharData.group(0, status);
+ result = mXMLCharData.group((int32_t)0, status);
// Normalize the new-lines. (Before char ref substitution)
mNewLineNormalizer.reset(result);
result = mNewLineNormalizer.replaceAll(fOneLF, status);
// An unrecognized &entity; Leave it alone.
// TODO: check that it really looks like an entity, and is not some
// random & in the text.
- replacement = mAmps.group(0, status);
+ replacement = mAmps.group((int32_t)0, status);
}
mAmps.appendReplacement(result, replacement, status);
}
int32_t i, count=fChildren.size();
for(i=0; i<count; ++i) {
node=(const UObject *)fChildren.elementAt(i);
- if(node->getDynamicClassID()==UnicodeString::getStaticClassID()) {
- text.append(*(const UnicodeString *)node);
+ const UnicodeString *s=dynamic_cast<const UnicodeString *>(node);
+ if(s!=NULL) {
+ text.append(*s);
} else if(recurse) /* must be a UXMLElement */ {
((const UXMLElement *)node)->appendText(text, recurse);
}
UXMLElement::getChild(int32_t i, UXMLNodeType &type) const {
if(0<=i && i<fChildren.size()) {
const UObject *node=(const UObject *)fChildren.elementAt(i);
- if(node->getDynamicClassID()==UXMLElement::getStaticClassID()) {
+ if(dynamic_cast<const UXMLElement *>(node)!=NULL) {
type=UXML_NODE_TYPE_ELEMENT;
} else {
type=UXML_NODE_TYPE_STRING;
int32_t count=fChildren.size();
while(i<count) {
node=(const UObject *)fChildren.elementAt(i++);
- // TODO: see if ICU can use C++ instanceof instead of its own poor man's RTTI
- // if(node instanceof UXMLElement) {
- if(node->getDynamicClassID()==UXMLElement::getStaticClassID()) {
- return (const UXMLElement *)node;
+ const UXMLElement *elem=dynamic_cast<const UXMLElement *>(node);
+ if(elem!=NULL) {
+ return elem;
}
}
return NULL;
int32_t i, count=fChildren.size();
for(i=0; i<count; ++i) {
node=(const UObject *)fChildren.elementAt(i);
- if(node->getDynamicClassID()==UXMLElement::getStaticClassID()) {
- const UXMLElement *elem=(const UXMLElement *)node;
+ const UXMLElement *elem=dynamic_cast<const UXMLElement *>(node);
+ if(elem!=NULL) {
if(p==elem->fName) {
return elem;
}