好的,我已经修改了 TBXML 库并且我已经解决了这个问题......如果有人有同样的问题,试试这个:
1) 在文件 TBXML.h 中为 TBXMLElement 创建一个名为 NSString* afterText 的属性。
2) 在文件 TBXML.m 中搜索此代码并对其进行注释:
// if parent element has children clear text
if (parentXMLElement && parentXMLElement->firstChild)
parentXMLElement->text = 0;
3)在步骤1的代码之前写下这段代码:
if (parentXMLElement && parentXMLElement->firstChild){
//if the next string does not content...
const char * parentNametag = [[TBXML elementName:parentXMLElement] UTF8String];
char * finalTag = (char *)malloc(sizeof("</")+sizeof(parentNametag)+sizeof(">"));
strcpy(finalTag,"</");
strcat(finalTag,parentNametag);
strcat(finalTag,">");
char * elementTextStart = elementStart;//parentXMLElement->text;
char * elementTextEnd = elementTextStart;
elementTextEnd = strstr(elementStart,finalTag);
if(elementTextEnd != NULL){
long textLength = strlen(elementTextStart) - strlen(elementTextEnd) ;
if (textLength > 0){
afterTextStart = (char *)malloc(textLength*sizeof(char));
memcpy(afterTextStart, elementTextStart,(textLength*sizeof(char)));
parentXMLElement->afterText = afterTextStart;
}
}
}
现在属性 "after text" 包含"more text"。
这不是一个正统的解决方案,但它对我有用。