这篇教程C++ xmlXPathIsNaN函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xmlXPathIsNaN函数的典型用法代码示例。如果您正苦于以下问题:C++ xmlXPathIsNaN函数的具体用法?C++ xmlXPathIsNaN怎么用?C++ xmlXPathIsNaN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xmlXPathIsNaN函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: exsltMathLoweststatic xmlNodeSetPtrexsltMathLowest (xmlNodeSetPtr ns) { xmlNodeSetPtr ret = xmlXPathNodeSetCreate(NULL); double min, cur; int i; if ((ns == NULL) || (ns->nodeNr == 0)) return(ret); min = xmlXPathCastNodeToNumber(ns->nodeTab[0]); if (xmlXPathIsNaN(min)) return(ret); else xmlXPathNodeSetAddUnique(ret, ns->nodeTab[0]); for (i = 1; i < ns->nodeNr; i++) { cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]); if (xmlXPathIsNaN(cur)) { xmlXPathEmptyNodeSet(ret); return(ret); } if (cur > min) continue; if (cur < min) { min = cur; xmlXPathEmptyNodeSet(ret); xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]); continue; } xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]); } return(ret);}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:33,
示例2: exsltMathPower/** * exsltMathPower: * @base: a double * @power: a double * * Implements the EXSLT - Math power() function: * number math:power (number, number) * * Returns the power base and power arguments, or xmlXPathNAN * if either @base or @power is Nan. */static doubleexsltMathPower (double base, double power) { double ret; if ((xmlXPathIsNaN(base) || xmlXPathIsNaN(power))) return(xmlXPathNAN); ret = pow(base, power); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:20,
示例3: exsltMathAtan2/** * exsltMathAtan2: * @y: a double * @x: a double * * Implements the EXSLT - Math atan2() function: * number math:atan2 (number, number) * * Returns the arc tangent function of the y/x arguments, or xmlXPathNAN * if either @y or @x is Nan. */static doubleexsltMathAtan2 (double y, double x) { double ret; if ((xmlXPathIsNaN(y) || xmlXPathIsNaN(x))) return(xmlXPathNAN); ret = atan2(y, x); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:20,
示例4: xpath_numberDatumxpath_number(PG_FUNCTION_ARGS){ text *document = PG_GETARG_TEXT_P(0); text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */ xmlChar *xpath; float4 fRes; xmlXPathObjectPtr res; xpath_workspace workspace; xpath = pgxml_texttoxmlchar(xpathsupp); res = pgxml_xpath(document, xpath, &workspace); pfree(xpath); if (res == NULL) PG_RETURN_NULL(); fRes = xmlXPathCastToNumber(res); cleanup_workspace(&workspace); if (xmlXPathIsNaN(fRes)) PG_RETURN_NULL(); PG_RETURN_FLOAT4(fRes);}
开发者ID:42penguins,项目名称:postgres,代码行数:28,
示例5: xpath_numberDatumxpath_number(PG_FUNCTION_ARGS){ xmlChar *xpath; int32 pathsize; text *xpathsupp; float4 fRes; xmlXPathObjectPtr res; /* PG_GETARG_TEXT_P(0) is document buffer */ xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */ pathsize = VARSIZE(xpathsupp) - VARHDRSZ; xpath = pgxml_texttoxmlchar(xpathsupp); res = pgxml_xpath(PG_GETARG_TEXT_P(0), xpath); pfree(xpath); if (res == NULL) PG_RETURN_NULL(); fRes = xmlXPathCastToNumber(res); if (xmlXPathIsNaN(fRes)) PG_RETURN_NULL(); PG_RETURN_FLOAT4(fRes);}
开发者ID:adunstan,项目名称:pg-cvs-mirror,代码行数:30,
示例6: convertXPathObjectToRSEXPconvertXPathObjectToR(xmlXPathObjectPtr obj, SEXP fun, int encoding, SEXP manageMemory){ SEXP ans = NULL_USER_OBJECT; switch(obj->type) { case XPATH_NODESET: ans = convertNodeSetToR(obj->nodesetval, fun, encoding, manageMemory); break; case XPATH_BOOLEAN: ans = ScalarLogical(obj->boolval); break; case XPATH_NUMBER: ans = ScalarReal(obj->floatval); if(xmlXPathIsInf(obj->floatval)) REAL(ans)[0] = xmlXPathIsInf(obj->floatval) < 0 ? R_NegInf : R_PosInf; else if(xmlXPathIsNaN(obj->floatval)) REAL(ans)[0] = NA_REAL; break; case XPATH_STRING: ans = mkString(XMLCHAR_TO_CHAR(obj->stringval)); //XXX encoding break; case XPATH_POINT: case XPATH_RANGE: case XPATH_LOCATIONSET: case XPATH_USERS: PROBLEM "currently unsupported xmlXPathObject type %d in convertXPathObjectToR. Please send mail to maintainer.", obj->type WARN default: ans = R_NilValue; } return(ans);}
开发者ID:jetaber,项目名称:XML,代码行数:35,
示例7: exsltMathLog/** * exsltMathLog: * @num: a double * * Implements the EXSLT - Math log() function: * number math:log (number) * * Returns the natural log of the argument, or xmlXPathNAN if @num is Nan. */static doubleexsltMathLog (double num) { double ret; if (xmlXPathIsNaN(num)) return(xmlXPathNAN); ret = log(num); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:18,
示例8: exsltMathCos/** * exsltMathCos: * @num: a double * * Implements the EXSLT - Math cos() function: * number math:cos (number) * * Returns the cosine of the argument, or xmlXPathNAN if @num is Nan. */static doubleexsltMathCos (double num) { double ret; if (xmlXPathIsNaN(num)) return(xmlXPathNAN); ret = cos(num); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:18,
示例9: exsltMathAtan/** * exsltMathAtan: * @num: a double * * Implements the EXSLT - Math atan() function: * number math:atan (number) * * Returns the arc tangent of the argument, or xmlXPathNAN if @num is Nan. */static doubleexsltMathAtan (double num) { double ret; if (xmlXPathIsNaN(num)) return(xmlXPathNAN); ret = atan(num); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:18,
示例10: exsltMathSqrt/** * exsltMathSqrt: * @num: a double * * Implements the EXSLT - Math sqrt() function: * number math:sqrt (number) * * Returns the square root of the argument, or xmlXPathNAN if @num is Nan. */static doubleexsltMathSqrt (double num) { double ret; if (xmlXPathIsNaN(num)) return(xmlXPathNAN); ret = sqrt(num); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:18,
示例11: exsltMathExp/** * exsltMathExp: * @num: a double * * Implements the EXSLT - Math exp() function: * number math:exp (number) * * Returns the exponential function of the argument, or xmlXPathNAN if * @num is Nan. */static doubleexsltMathExp (double num) { double ret; if (xmlXPathIsNaN(num)) return(xmlXPathNAN); ret = exp(num); return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:19,
示例12: exsltMathMin/** * exsltMathMin: * @ns: a node-set * * Implements the EXSLT - Math min() function: * number math:min (node-set) * * Returns the minimum value of the nodes passed as the argument, or * xmlXPathNAN if @ns is NULL or empty or if one of the nodes * turns into NaN. */static doubleexsltMathMin (xmlNodeSetPtr ns) { double ret, cur; int i; if ((ns == NULL) || (ns->nodeNr == 0)) return(xmlXPathNAN); ret = xmlXPathCastNodeToNumber(ns->nodeTab[0]); if (xmlXPathIsNaN(ret)) return(xmlXPathNAN); for (i = 1; i < ns->nodeNr; i++) { cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]); if (xmlXPathIsNaN(cur)) return(xmlXPathNAN); if (cur < ret) ret = cur; } return(ret);}
开发者ID:ArielleBassanelli,项目名称:gempak,代码行数:30,
示例13: xmlSchematronRunTest/** * xmlSchematronRunTest: * @ctxt: the schema validation context * @test: the current test * @instance: the document instace tree * @cur: the current node in the instance * * Validate a rule against a tree instance at a given position * * Returns 1 in case of success, 0 if error and -1 in case of internal error */static intxmlSchematronRunTest(xmlSchematronValidCtxtPtr ctxt, xmlSchematronTestPtr test, xmlDocPtr instance, xmlNodePtr cur, xmlSchematronPatternPtr pattern){ xmlXPathObjectPtr ret; int failed; failed = 0; ctxt->xctxt->doc = instance; ctxt->xctxt->node = cur; ret = xmlXPathCompiledEval(test->comp, ctxt->xctxt); if (ret == NULL) { failed = 1; } else { switch (ret->type) { case XPATH_XSLT_TREE: case XPATH_NODESET: if ((ret->nodesetval == NULL) || (ret->nodesetval->nodeNr == 0)) failed = 1; break; case XPATH_BOOLEAN: failed = !ret->boolval; break; case XPATH_NUMBER: if ((xmlXPathIsNaN(ret->floatval)) || (ret->floatval == 0.0)) failed = 1; break; case XPATH_STRING: if ((ret->stringval == NULL) || (ret->stringval[0] == 0)) failed = 1; break; case XPATH_UNDEFINED: case XPATH_POINT: case XPATH_RANGE: case XPATH_LOCATIONSET: case XPATH_USERS: failed = 1; break; } xmlXPathFreeObject(ret); } if ((failed) && (test->type == XML_SCHEMATRON_ASSERT)) ctxt->nberrors++; else if ((!failed) && (test->type == XML_SCHEMATRON_REPORT)) ctxt->nberrors++; xmlSchematronReportSuccess(ctxt, test, cur, pattern, !failed); return(!failed);}
开发者ID:AllenChanAncA,项目名称:WiEngine,代码行数:64,
示例14: xsltNumberFormatInsertNumbersstatic voidxsltNumberFormatInsertNumbers(xsltNumberDataPtr data, double *numbers, int numbers_max, xsltFormatPtr tokens, xmlBufferPtr buffer){ int i = 0; double number; xsltFormatTokenPtr token; /* * Handle initial non-alphanumeric token */ if (tokens->start != NULL) xmlBufferCat(buffer, tokens->start); for (i = 0; i < numbers_max; i++) { /* Insert number */ number = numbers[(numbers_max - 1) - i]; /* Round to nearest like XSLT 2.0 */ number = floor(number + 0.5); /* * XSLT 1.0 isn't clear on how to handle negative numbers, but XSLT * 2.0 says: * * It is a non-recoverable dynamic error if any undiscarded item * in the atomized sequence supplied as the value of the value * attribute of xsl:number cannot be converted to an integer, or * if the resulting integer is less than 0 (zero). */ if (number < 0.0) { xsltTransformError(NULL, NULL, NULL, "xsl-number : negative value/n"); /* Recover by treating negative values as zero. */ number = 0.0; } if (i < tokens->nTokens) { /* * The "n"th format token will be used to format the "n"th * number in the list */ token = &(tokens->tokens[i]); } else if (tokens->nTokens > 0) { /* * If there are more numbers than format tokens, then the * last format token will be used to format the remaining * numbers. */ token = &(tokens->tokens[tokens->nTokens - 1]); } else { /* * If there are no format tokens, then a format token of * 1 is used to format all numbers. */ token = &default_token; } /* Print separator, except for the first number */ if (i > 0) { if (token->separator != NULL) xmlBufferCat(buffer, token->separator); else xmlBufferCCat(buffer, DEFAULT_SEPARATOR); } switch (xmlXPathIsInf(number)) { case -1: xmlBufferCCat(buffer, "-Infinity"); break; case 1: xmlBufferCCat(buffer, "Infinity"); break; default: if (xmlXPathIsNaN(number)) { xmlBufferCCat(buffer, "NaN"); } else { switch (token->token) { case 'A': xsltNumberFormatAlpha(data, buffer, number, TRUE); break; case 'a': xsltNumberFormatAlpha(data, buffer, number, FALSE); break; case 'I': xsltNumberFormatRoman(data, buffer, number, TRUE); break; case 'i': xsltNumberFormatRoman(data, buffer, number, FALSE); break; default: if (IS_DIGIT_ZERO(token->token)) { xsltNumberFormatDecimal(buffer, number, token->token, token->width, data->digitsPerGroup, data->groupingCharacter, data->groupingCharacterLen);//.........这里部分代码省略.........
开发者ID:amaneureka,项目名称:reactos,代码行数:101,
示例15: xsltNumberFormatInsertNumbersstatic voidxsltNumberFormatInsertNumbers(xsltNumberDataPtr data, double *numbers, int numbers_max, xsltFormatPtr tokens, xmlBufferPtr buffer){ int i = 0; double number; xsltFormatTokenPtr token; /* * Handle initial non-alphanumeric token */ if (tokens->start != NULL) xmlBufferCat(buffer, tokens->start); for (i = 0; i < numbers_max; i++) { /* Insert number */ number = numbers[(numbers_max - 1) - i]; if (i < tokens->nTokens) { /* The "n"th format token will be used to format the "n"th * number in the list */ token = &(tokens->tokens[i]); } else if (tokens->nTokens > 0) { /* If there are more numbers than format tokens, then the * last format token will be used to format the remaining * numbers. */ token = &(tokens->tokens[tokens->nTokens - 1]); } else { /* If there are no format tokens, then a format token of * 1 is used to format all numbers. */ token = &default_token; } /* Print separator, except for the first number */ if (i > 0) { if (token->separator != NULL) xmlBufferCat(buffer, token->separator); else xmlBufferCCat(buffer, DEFAULT_SEPARATOR); } switch (xmlXPathIsInf(number)) { case -1: xmlBufferCCat(buffer, "-Infinity"); break; case 1: xmlBufferCCat(buffer, "Infinity"); break; default: if (xmlXPathIsNaN(number)) { xmlBufferCCat(buffer, "NaN"); } else { switch (token->token) { case 'A': xsltNumberFormatAlpha(buffer, number, TRUE); break; case 'a': xsltNumberFormatAlpha(buffer, number, FALSE); break; case 'I': xsltNumberFormatRoman(buffer, number, TRUE); break; case 'i': xsltNumberFormatRoman(buffer, number, FALSE); break; default: if (IS_DIGIT_ZERO(token->token)) { xsltNumberFormatDecimal(buffer, number, token->token, token->width, data->digitsPerGroup, data->groupingCharacter); } break; } } } } /* * Handle final non-alphanumeric token */ if (tokens->end != NULL)//.........这里部分代码省略.........
开发者ID:gitpan,项目名称:AxKit-Needs,代码行数:101,
示例16: xsltFormatNumberConversion/** * xsltFormatNumberConversion: * @self: the decimal format * @format: the format requested * @number: the value to format * @result: the place to ouput the result * * format-number() uses the JDK 1.1 DecimalFormat class: * * http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html * * Structure: * * pattern := subpattern{;subpattern} * subpattern := {prefix}integer{.fraction}{suffix} * prefix := '//u0000'..'//uFFFD' - specialCharacters * suffix := '//u0000'..'//uFFFD' - specialCharacters * integer := '#'* '0'* '0' * fraction := '0'* '#'* * * Notation: * X* 0 or more instances of X * (X | Y) either X or Y. * X..Y any character from X up to Y, inclusive. * S - T characters in S, except those in T * * Special Characters: * * Symbol Meaning * 0 a digit * # a digit, zero shows as absent * . placeholder for decimal separator * , placeholder for grouping separator. * ; separates formats. * - default negative prefix. * % multiply by 100 and show as percentage * ? multiply by 1000 and show as per mille * X any other characters can be used in the prefix or suffix * ' used to quote special characters in a prefix or suffix. */xmlXPathErrorxsltFormatNumberConversion(xsltDecimalFormatPtr self, xmlChar *format, double number, xmlChar **result){ xmlXPathError status = XPATH_EXPRESSION_OK; xmlBufferPtr buffer; xmlChar *the_format, *prefix = NULL, *suffix = NULL; xmlChar *nprefix, *nsuffix = NULL; xmlChar pchar; int prefix_length, suffix_length = 0, nprefix_length, nsuffix_length; double scale; int j; xsltFormatNumberInfo format_info; /* delayed_multiplier allows a 'trailing' percent or permille to be treated as suffix */ int delayed_multiplier = 0; /* flag to show no -ve format present for -ve number */ char default_sign = 0; /* flag to show error found, should use default format */ char found_error = 0; *result = NULL; switch (xmlXPathIsInf(number)) { case -1: if (self->minusSign == NULL) *result = xmlStrdup(BAD_CAST "-"); else *result = xmlStrdup(self->minusSign); /* no-break on purpose */ case 1: if ((self == NULL) || (self->infinity == NULL)) *result = xmlStrcat(*result, BAD_CAST "Infinity"); else *result = xmlStrcat(*result, self->infinity); return(status); default: if (xmlXPathIsNaN(number)) { if ((self == NULL) || (self->noNumber == NULL)) *result = xmlStrdup(BAD_CAST "NaN"); else *result = xmlStrdup(self->noNumber); return(status); } } buffer = xmlBufferCreate(); if (buffer == NULL) { return XPATH_MEMORY_ERROR; } format_info.integer_digits = 0; format_info.frac_digits = 0; format_info.frac_hash = 0; format_info.group = -1; format_info.multiplier = 1; format_info.is_multiplier_set = FALSE; format_info.is_negative_pattern = FALSE; the_format = format;//.........这里部分代码省略.........
开发者ID:gitpan,项目名称:AxKit-Needs,代码行数:101,
示例17: xsltUnicodeSortFunction//.........这里部分代码省略......... resultsTab[0] = xsltComputeSortResult(ctxt, sorts[0]); for (i = 1;i < XSLT_MAX_SORT;i++) resultsTab[i] = NULL; results = resultsTab[0]; comp = static_cast<xsltStylePreComp*>(sorts[0]->psvi); descending = comp->descending; number = comp->number; if (results == NULL) return; // We are passing a language identifier to a function that expects a locale identifier. // The implementation of Collator should be lenient, and accept both "en-US" and "en_US", for example. // This lets an author specify sorting rules, e.g. "[email C++ xmlXPathNewContext函数代码示例 C++ xmlXPathFreeObject函数代码示例
|