本文整理汇总了C++中CFX_WideString::AsStringC方法的典型用法代码示例。如果您正苦于以下问题:C++ CFX_WideString::AsStringC方法的具体用法?C++ CFX_WideString::AsStringC怎么用?C++ CFX_WideString::AsStringC使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFX_WideString
的用法示例。
在下文中一共展示了CFX_WideString::AsStringC方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ResolveNodes_CreateNode
FX_BOOL CXFA_NodeHelper::ResolveNodes_CreateNode(
CFX_WideString wsName,
CFX_WideString wsCondition,
FX_BOOL bLastNode,
CXFA_ScriptContext* pScriptContext) {
if (!m_pCreateParent) {
return FALSE;
}
FX_BOOL bIsClassName = FALSE;
FX_BOOL bResult = FALSE;
if (wsName.GetAt(0) == '!') {
wsName = wsName.Right(wsName.GetLength() - 1);
m_pCreateParent = ToNode(
pScriptContext->GetDocument()->GetXFAObject(XFA_HASHCODE_Datasets));
}
if (wsName.GetAt(0) == '#') {
bIsClassName = TRUE;
wsName = wsName.Right(wsName.GetLength() - 1);
}
if (m_iCreateCount == 0) {
CreateNode_ForCondition(wsCondition);
}
if (bIsClassName) {
XFA_Element eType = XFA_GetElementTypeForName(wsName.AsStringC());
if (eType == XFA_Element::Unknown)
return FALSE;
for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) {
CXFA_Node* pNewNode = m_pCreateParent->CreateSamePacketNode(eType);
if (pNewNode) {
m_pCreateParent->InsertChild(pNewNode);
if (iIndex == m_iCreateCount - 1) {
m_pCreateParent = pNewNode;
}
bResult = TRUE;
}
}
} else {
XFA_Element eClassType = XFA_Element::DataGroup;
if (bLastNode) {
eClassType = m_eLastCreateType;
}
for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) {
CXFA_Node* pNewNode = m_pCreateParent->CreateSamePacketNode(eClassType);
if (pNewNode) {
pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, wsName.AsStringC());
pNewNode->CreateXMLMappingNode();
m_pCreateParent->InsertChild(pNewNode);
if (iIndex == m_iCreateCount - 1) {
m_pCreateParent = pNewNode;
}
bResult = TRUE;
}
}
}
if (!bResult) {
m_pCreateParent = nullptr;
}
return bResult;
}
示例2: GlobalPropertyGetter
void CXFA_ScriptContext::GlobalPropertyGetter(CFXJSE_Value* pObject,
const CFX_ByteStringC& szPropName,
CFXJSE_Value* pValue) {
CXFA_Object* pOriginalObject = ToObject(pObject, nullptr);
CXFA_Document* pDoc = pOriginalObject->GetDocument();
CXFA_ScriptContext* lpScriptContext = pDoc->GetScriptContext();
CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(pOriginalObject);
CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName);
if (lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Formcalc) {
if (szPropName == kFormCalcRuntime) {
lpScriptContext->m_FM2JSContext->GlobalPropertyGetter(pValue);
return;
}
XFA_HashCode uHashCode = static_cast<XFA_HashCode>(
FX_HashCode_GetW(wsPropName.AsStringC(), false));
if (uHashCode != XFA_HASHCODE_Layout) {
CXFA_Object* pObj =
lpScriptContext->GetDocument()->GetXFAObject(uHashCode);
if (pObj) {
pValue->Assign(lpScriptContext->GetJSValueFromMap(pObj));
return;
}
}
}
uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
XFA_RESOLVENODE_Attributes;
CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
if (pOriginalObject->IsVariablesThis()) {
pRefNode = ToNode(lpCurNode);
}
if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName.AsStringC(), pValue,
dwFlag, FALSE)) {
return;
}
dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings;
if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName.AsStringC(), pValue,
dwFlag, FALSE)) {
return;
}
CXFA_Object* pScriptObject =
lpScriptContext->GetVariablesThis(pOriginalObject, TRUE);
if (pScriptObject &&
lpScriptContext->QueryVariableValue(pScriptObject->AsNode(), szPropName,
pValue, TRUE)) {
return;
}
CXFA_FFNotify* pNotify = pDoc->GetNotify();
if (!pNotify) {
return;
}
pNotify->GetDocProvider()->GetGlobalProperty(pNotify->GetHDOC(), szPropName,
pValue);
}
示例3: NormalPropertySetter
void CXFA_ScriptContext::NormalPropertySetter(CFXJSE_Value* pOriginalValue,
const CFX_ByteStringC& szPropName,
CFXJSE_Value* pReturnValue) {
CXFA_Object* pOriginalObject = ToObject(pOriginalValue, nullptr);
if (!pOriginalObject)
return;
CXFA_ScriptContext* lpScriptContext =
pOriginalObject->GetDocument()->GetScriptContext();
CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOriginalObject);
CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName);
const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = XFA_GetScriptAttributeByName(
pObject->GetElementType(), wsPropName.AsStringC());
if (lpAttributeInfo) {
(pObject->*(lpAttributeInfo->lpfnCallback))(
pReturnValue, TRUE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute);
} else {
if (pObject->IsNode()) {
if (wsPropName.GetAt(0) == '#') {
wsPropName = wsPropName.Right(wsPropName.GetLength() - 1);
}
CXFA_Node* pNode = ToNode(pObject);
CXFA_Node* pPropOrChild = nullptr;
XFA_Element eType = XFA_GetElementTypeForName(wsPropName.AsStringC());
if (eType != XFA_Element::Unknown)
pPropOrChild = pNode->GetProperty(0, eType);
else
pPropOrChild = pNode->GetFirstChildByName(wsPropName.AsStringC());
if (pPropOrChild) {
CFX_WideString wsDefaultName(L"{default}");
const XFA_SCRIPTATTRIBUTEINFO* lpAttrInfo =
XFA_GetScriptAttributeByName(pPropOrChild->GetElementType(),
wsDefaultName.AsStringC());
if (lpAttrInfo) {
(pPropOrChild->*(lpAttrInfo->lpfnCallback))(
pReturnValue, TRUE, (XFA_ATTRIBUTE)lpAttrInfo->eAttribute);
return;
}
}
}
CXFA_Object* pScriptObject =
lpScriptContext->GetVariablesThis(pOriginalObject, TRUE);
if (pScriptObject) {
lpScriptContext->QueryVariableValue(ToNode(pScriptObject), szPropName,
pReturnValue, FALSE);
}
}
}
示例4: ResetData
void CScript_HostPseudoModel::ResetData(CFXJSE_Arguments* pArguments) {
int32_t iLength = pArguments->GetLength();
if (iLength < 0 || iLength > 1) {
ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"resetData");
return;
}
CXFA_FFNotify* pNotify = m_pDocument->GetNotify();
if (!pNotify) {
return;
}
CFX_WideString wsExpression;
if (iLength >= 1) {
CFX_ByteString bsExpression = pArguments->GetUTF8String(0);
wsExpression = CFX_WideString::FromUTF8(bsExpression.AsStringC());
}
if (wsExpression.IsEmpty()) {
pNotify->ResetData();
return;
}
int32_t iStart = 0;
CFX_WideString wsName;
CXFA_Node* pNode = nullptr;
int32_t iExpLength = wsExpression.GetLength();
while (iStart < iExpLength) {
iStart = XFA_FilterName(wsExpression.AsStringC(), iStart, wsName);
CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext();
if (!pScriptContext) {
return;
}
CXFA_Object* pObject = pScriptContext->GetThisObject();
if (!pObject) {
return;
}
uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent |
XFA_RESOLVENODE_Siblings;
XFA_RESOLVENODE_RS resoveNodeRS;
int32_t iRet = pScriptContext->ResolveObjects(pObject, wsName.AsStringC(),
resoveNodeRS, dwFlag);
if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) {
continue;
}
pNode = resoveNodeRS.nodes[0]->AsNode();
pNotify->ResetData(pNode->GetWidgetData());
}
if (!pNode) {
pNotify->ResetData();
}
}
示例5: SubmitForm
FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination,
FX_BOOL bUrlEncoded) {
if (sDestination.IsEmpty())
return FALSE;
if (!m_pDocument || !m_pInterForm)
return FALSE;
CPDFSDK_Environment* pEnv = m_pDocument->GetEnv();
CFX_WideString wsPDFFilePath = m_pDocument->GetPath();
CFDF_Document* pFDFDoc =
m_pInterForm->ExportToFDF(wsPDFFilePath.AsStringC(), false);
if (!pFDFDoc)
return FALSE;
CFX_ByteTextBuf FdfBuffer;
FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer);
delete pFDFDoc;
if (!bRet)
return FALSE;
uint8_t* pBuffer = FdfBuffer.GetBuffer();
FX_STRSIZE nBufSize = FdfBuffer.GetLength();
if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize))
return FALSE;
pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str());
if (bUrlEncoded)
FX_Free(pBuffer);
return TRUE;
}
示例6: CXFA_FMIdentifierExpression
TEST(FMCallExpression, more_than_32_arguments) {
// Use sign as it has 3 object parameters at positions 0, 5, and 6.
std::unique_ptr<CXFA_FMIdentifierExpression> exp(
new CXFA_FMIdentifierExpression(0, CFX_WideStringC(L"sign")));
std::unique_ptr<CFX_ArrayTemplate<CXFA_FMSimpleExpression*>> args(
new CFX_ArrayTemplate<CXFA_FMSimpleExpression*>());
for (size_t i = 0; i < 50; i++)
args->Add(new CXFA_FMSimpleExpression(0, TOKnan));
CXFA_FMCallExpression callExp(0, exp.release(), args.release(), true);
CFX_WideTextBuf js;
callExp.ToJavaScript(js);
// Generate the result javascript string.
CFX_WideString result = L"sign(";
for (size_t i = 0; i < 50; i++) {
if (i > 0)
result += L", ";
result += L"foxit_xfa_formcalc_runtime.get_fm_";
// Object positions for sign() method.
if (i == 0 || i == 5 || i == 6)
result += L"jsobj()";
else
result += L"value()";
}
result += L")";
EXPECT_EQ(result.AsStringC(), js.AsStringC());
}
示例7: GetWidgetAccByName
CXFA_WidgetAcc* CXFA_FFDocView::GetWidgetAccByName(
const CFX_WideString& wsName,
CXFA_WidgetAcc* pRefWidgetAcc) {
CFX_WideString wsExpression;
uint32_t dwStyle = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent;
CXFA_ScriptContext* pScriptContext = m_pDoc->GetXFADoc()->GetScriptContext();
if (!pScriptContext) {
return nullptr;
}
CXFA_Node* refNode = nullptr;
if (pRefWidgetAcc) {
refNode = pRefWidgetAcc->GetNode();
wsExpression = wsName;
} else {
wsExpression = L"$form." + wsName;
}
XFA_RESOLVENODE_RS resoveNodeRS;
int32_t iRet = pScriptContext->ResolveObjects(
refNode, wsExpression.AsStringC(), resoveNodeRS, dwStyle);
if (iRet < 1) {
return nullptr;
}
if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) {
CXFA_Node* pNode = resoveNodeRS.nodes[0]->AsNode();
if (pNode) {
return (CXFA_WidgetAcc*)pNode->GetWidgetData();
}
}
return nullptr;
}
示例8: GlobalPropertySetter
void CXFA_ScriptContext::GlobalPropertySetter(CFXJSE_Value* pObject,
const CFX_ByteStringC& szPropName,
CFXJSE_Value* pValue) {
CXFA_Object* lpOrginalNode = ToObject(pObject, nullptr);
CXFA_Document* pDoc = lpOrginalNode->GetDocument();
CXFA_ScriptContext* lpScriptContext = pDoc->GetScriptContext();
CXFA_Object* lpCurNode = lpScriptContext->GetVariablesThis(lpOrginalNode);
CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName);
uint32_t dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings |
XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
XFA_RESOLVENODE_Attributes;
CXFA_Node* pRefNode = ToNode(lpScriptContext->GetThisObject());
if (lpOrginalNode->IsVariablesThis())
pRefNode = ToNode(lpCurNode);
if (lpScriptContext->QueryNodeByFlag(pRefNode, wsPropName.AsStringC(), pValue,
dwFlag, TRUE)) {
return;
}
if (lpOrginalNode->IsVariablesThis()) {
if (pValue && pValue->IsUndefined()) {
pObject->SetObjectOwnProperty(szPropName, pValue);
return;
}
}
CXFA_FFNotify* pNotify = pDoc->GetNotify();
if (!pNotify) {
return;
}
pNotify->GetDocProvider()->SetGlobalProperty(pNotify->GetHDOC(), szPropName,
pValue);
}
示例9: UpdateWidgetProperty
void CXFA_FFBarcode::UpdateWidgetProperty() {
CXFA_FFTextEdit::UpdateWidgetProperty();
CFWL_Barcode* pBarCodeWidget = (CFWL_Barcode*)m_pNormalWidget;
CFX_WideString wsType = GetDataAcc()->GetBarcodeType();
const XFA_BARCODETYPEENUMINFO* pBarcodeTypeInfo =
XFA_GetBarcodeTypeByName(wsType.AsStringC());
if (!pBarcodeTypeInfo)
return;
pBarCodeWidget->SetType(pBarcodeTypeInfo->eBCType);
CXFA_WidgetAcc* pAcc = GetDataAcc();
int32_t intVal;
FX_CHAR charVal;
bool boolVal;
FX_FLOAT floatVal;
if (pAcc->GetBarcodeAttribute_CharEncoding(intVal)) {
pBarCodeWidget->SetCharEncoding((BC_CHAR_ENCODING)intVal);
}
if (pAcc->GetBarcodeAttribute_Checksum(boolVal)) {
pBarCodeWidget->SetCalChecksum(boolVal);
}
if (pAcc->GetBarcodeAttribute_DataLength(intVal)) {
pBarCodeWidget->SetDataLength(intVal);
}
if (pAcc->GetBarcodeAttribute_StartChar(charVal)) {
pBarCodeWidget->SetStartChar(charVal);
}
if (pAcc->GetBarcodeAttribute_EndChar(charVal)) {
pBarCodeWidget->SetEndChar(charVal);
}
if (pAcc->GetBarcodeAttribute_ECLevel(intVal)) {
pBarCodeWidget->SetErrorCorrectionLevel(intVal);
}
if (pAcc->GetBarcodeAttribute_ModuleWidth(intVal)) {
pBarCodeWidget->SetModuleWidth(intVal);
}
if (pAcc->GetBarcodeAttribute_ModuleHeight(intVal)) {
pBarCodeWidget->SetModuleHeight(intVal);
}
if (pAcc->GetBarcodeAttribute_PrintChecksum(boolVal)) {
pBarCodeWidget->SetPrintChecksum(boolVal);
}
if (pAcc->GetBarcodeAttribute_TextLocation(intVal)) {
pBarCodeWidget->SetTextLocation((BC_TEXT_LOC)intVal);
}
if (pAcc->GetBarcodeAttribute_Truncate(boolVal)) {
pBarCodeWidget->SetTruncated(boolVal);
}
if (pAcc->GetBarcodeAttribute_WideNarrowRatio(floatVal)) {
pBarCodeWidget->SetWideNarrowRatio((int32_t)floatVal);
}
if (pBarcodeTypeInfo->eName == XFA_BARCODETYPE_code3Of9 ||
pBarcodeTypeInfo->eName == XFA_BARCODETYPE_ean8 ||
pBarcodeTypeInfo->eName == XFA_BARCODETYPE_ean13 ||
pBarcodeTypeInfo->eName == XFA_BARCODETYPE_upcA) {
pBarCodeWidget->SetPrintChecksum(true);
}
}
示例10: NormalPropertyGetter
void CXFA_ScriptContext::NormalPropertyGetter(CFXJSE_Value* pOriginalValue,
const CFX_ByteStringC& szPropName,
CFXJSE_Value* pReturnValue) {
CXFA_Object* pOriginalObject = ToObject(pOriginalValue, nullptr);
if (!pOriginalObject) {
pReturnValue->SetUndefined();
return;
}
CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName);
CXFA_ScriptContext* lpScriptContext =
pOriginalObject->GetDocument()->GetScriptContext();
CXFA_Object* pObject = lpScriptContext->GetVariablesThis(pOriginalObject);
if (wsPropName == FX_WSTRC(L"xfa")) {
CFXJSE_Value* pValue = lpScriptContext->GetJSValueFromMap(
lpScriptContext->GetDocument()->GetRoot());
pReturnValue->Assign(pValue);
return;
}
uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
XFA_RESOLVENODE_Attributes;
FX_BOOL bRet = lpScriptContext->QueryNodeByFlag(
ToNode(pObject), wsPropName.AsStringC(), pReturnValue, dwFlag, FALSE);
if (bRet) {
return;
}
if (pObject == lpScriptContext->GetThisObject() ||
(lpScriptContext->GetType() == XFA_SCRIPTLANGTYPE_Javascript &&
!lpScriptContext->IsStrictScopeInJavaScript())) {
dwFlag = XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings;
bRet = lpScriptContext->QueryNodeByFlag(
ToNode(pObject), wsPropName.AsStringC(), pReturnValue, dwFlag, FALSE);
}
if (bRet) {
return;
}
CXFA_Object* pScriptObject =
lpScriptContext->GetVariablesThis(pOriginalObject, TRUE);
if (pScriptObject) {
bRet = lpScriptContext->QueryVariableValue(ToNode(pScriptObject),
szPropName, pReturnValue, TRUE);
}
if (!bRet) {
pReturnValue->SetUndefined();
}
}
示例11: NormalPropTypeGetter
int32_t CXFA_ScriptContext::NormalPropTypeGetter(
CFXJSE_Value* pOriginalValue,
const CFX_ByteStringC& szPropName,
FX_BOOL bQueryIn) {
CXFA_Object* pObject = ToObject(pOriginalValue, nullptr);
if (!pObject)
return FXJSE_ClassPropType_None;
CXFA_ScriptContext* lpScriptContext =
pObject->GetDocument()->GetScriptContext();
pObject = lpScriptContext->GetVariablesThis(pObject);
XFA_Element eType = pObject->GetElementType();
CFX_WideString wsPropName = CFX_WideString::FromUTF8(szPropName);
if (GetMethodByName(eType, wsPropName.AsStringC())) {
return FXJSE_ClassPropType_Method;
}
if (bQueryIn &&
!XFA_GetScriptAttributeByName(eType, wsPropName.AsStringC())) {
return FXJSE_ClassPropType_None;
}
return FXJSE_ClassPropType_Property;
}
示例12: NormalMethodCall
void CXFA_ScriptContext::NormalMethodCall(CFXJSE_Value* pThis,
const CFX_ByteStringC& szFuncName,
CFXJSE_Arguments& args) {
CXFA_Object* pObject = ToObject(pThis, nullptr);
if (!pObject)
return;
CXFA_ScriptContext* lpScriptContext =
pObject->GetDocument()->GetScriptContext();
pObject = lpScriptContext->GetVariablesThis(pObject);
CFX_WideString wsFunName = CFX_WideString::FromUTF8(szFuncName);
const XFA_METHODINFO* lpMethodInfo =
GetMethodByName(pObject->GetElementType(), wsFunName.AsStringC());
if (!lpMethodInfo)
return;
(pObject->*(lpMethodInfo->lpfnCallback))(&args);
}
示例13: Preprocess
bool CBC_EAN8::Encode(const CFX_WideStringC& contents,
bool isDevice,
int32_t& e) {
if (contents.IsEmpty()) {
e = BCExceptionNoContents;
return false;
}
BCFORMAT format = BCFORMAT_EAN_8;
int32_t outWidth = 0;
int32_t outHeight = 0;
CFX_WideString encodeContents = Preprocess(contents);
CFX_ByteString byteString = encodeContents.UTF8Encode();
m_renderContents = encodeContents;
uint8_t* data = static_cast<CBC_OnedEAN8Writer*>(m_pBCWriter.get())
->Encode(byteString, format, outWidth, outHeight, e);
BC_EXCEPTION_CHECK_ReturnValue(e, false);
static_cast<CBC_OneDimWriter*>(m_pBCWriter.get())
->RenderResult(encodeContents.AsStringC(), data, outWidth, isDevice, e);
FX_Free(data);
BC_EXCEPTION_CHECK_ReturnValue(e, false);
return true;
}
示例14: ParseElement
CXML_Element* CXML_Parser::ParseElement(CXML_Element* pParent, bool bStartTag) {
m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
if (IsEOF()) {
return nullptr;
}
CFX_ByteString tag_name, tag_space;
bool bEndTag;
GetTagName(tag_space, tag_name, bEndTag, bStartTag);
if (tag_name.IsEmpty() || bEndTag) {
return nullptr;
}
CXML_Element* pElement = new CXML_Element;
pElement->m_pParent = pParent;
pElement->SetTag(tag_space.AsStringC(), tag_name.AsStringC());
do {
CFX_ByteString attr_space, attr_name;
while (m_dwIndex < m_dwBufferSize) {
SkipWhiteSpaces();
if (IsEOF()) {
break;
}
if (!g_FXCRT_XML_IsNameIntro(m_pBuffer[m_dwIndex])) {
break;
}
GetName(attr_space, attr_name);
SkipWhiteSpaces();
if (IsEOF()) {
break;
}
if (m_pBuffer[m_dwIndex] != '=') {
break;
}
m_dwIndex++;
SkipWhiteSpaces();
if (IsEOF()) {
break;
}
CFX_WideString attr_value;
GetAttrValue(attr_value);
pElement->m_AttrMap.SetAt(attr_space, attr_name, attr_value);
}
m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
if (m_dwIndex < m_dwBufferSize || IsEOF()) {
break;
}
} while (ReadNextBlock());
SkipWhiteSpaces();
if (IsEOF()) {
return pElement;
}
uint8_t ch = m_pBuffer[m_dwIndex++];
if (ch == '/') {
m_dwIndex++;
m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
return pElement;
}
if (ch != '>') {
m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex;
delete pElement;
return nullptr;
}
SkipWhiteSpaces();
if (IsEOF()) {
return pElement;
}
CFX_UTF8Decoder decoder;
CFX_WideTextBuf content;
bool bCDATA = false;
int32_t iState = 0;
do {
while (m_dwIndex < m_dwBufferSize) {
ch = m_pBuffer[m_dwIndex++];
switch (iState) {
case 0:
if (ch == '<') {
iState = 1;
} else if (ch == '&') {
decoder.ClearStatus();
decoder.AppendChar(GetCharRef());
} else {
decoder.Input(ch);
}
break;
case 1:
if (ch == '!') {
iState = 2;
} else if (ch == '?') {
SkipLiterals("?>");
SkipWhiteSpaces();
iState = 0;
} else if (ch == '/') {
CFX_ByteString space, name;
GetName(space, name);
SkipWhiteSpaces();
m_dwIndex++;
iState = 10;
} else {
content << decoder.GetResult();
CFX_WideString dataStr = content.MakeString();
if (!bCDATA && !m_bSaveSpaceChars) {
//.........这里部分代码省略.........