Esta função obtém o objeto de valor do elemento da sintaxe especificado. Esse objeto de valor é opaco no sentido de que ele não pode ser interrogado. Ele pode ser utilizado para definir ou derivar o valor de um elemento a partir de outro, sem conhecer seu tipo, utilizando a função cpiSetElementValueValue.
Esta função pode ser usada por analisadores que substituem o comportamento chamando as funções de implementação cpiElementValue e cpiSetElementValue.
const CciElementValue* cpiElementValueValue(
int* returnCode,
CciElement* targetElement);
O endereço do objeto CciElementValue armazenado no elemento de sintaxe de destino especificado é retornado. Se um erro ocorrer, zero (CCI_NULL_ADDR) é retornado e returnCode indica a razão do erro.
Este exemplo é obtido do arquivo analisador de amostra BipSampPluginParser.c:
const CciElementValue* cpiElementValue(
CciParser* parser,
CciElement* element
){
CciElement* firstChild;
const CciElementValue* value;
int rc;
if ((cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_VALUE) ||
(cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_NAME_VALUE)) {
value = cpiElementValueValue(&rc, element);
}
else if (cpiElementType(&rc, element) == CCI_ELEMENT_TYPE_NAME) {
firstChild = cniFirstChild(&rc, element);
value = cpiElementValueValue(&rc, firstChild);
}
else {
}
return(value);
}