首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TBXML textForElement问题

TBXML textForElement问题
EN

Stack Overflow用户
提问于 2012-10-19 23:15:13
回答 1查看 430关注 0票数 1

我正在尝试用iOS的TBXML库解析一个超文本标记语言,我想要获得这段超文本标记语言的“更多文本”值:

代码语言:javascript
复制
<div> 
 <a href="/url/1">
   <strong>value</strong>
 </a>
 more text
</div>

我使用了以下代码,但它似乎不起作用:

代码语言:javascript
复制
//Assume that "div" is a TBXMLElement* for this div 
NSString* content = [TBXML textForElement:div];
//Returns @"" when the value @"more text" is expected...

我的代码出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 17:55:29

好的,我已经修改了TBXML库,并且我已经解决了problem...If有人有同样的问题,试试这个:

1)在文件TBXML.h中为TBXMLElement创建一个名称为NSString* afterText的属性。

2)在TBXML.m文件中搜索此代码,并对其进行注释:

代码语言:javascript
复制
// if parent element has children clear text
                if (parentXMLElement && parentXMLElement->firstChild)
                    parentXMLElement->text = 0;

3)将此代码写在步骤1的代码之前:

代码语言:javascript
复制
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”。

这不是一个正统的解决方案,但它对我很有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12977313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档