当前位置: 首页 > 知识库问答 >
问题:

Hpple,收到短信后

谷梁玺
2023-03-14

我可以用//div[@ class = ' entry-content ']/p获取以“今天的项目”开头的文本,还可以用//div[@ class = ' entry-content ']//a[@ title]//*获取下一个标签以及它后面的所有文本。然而,正如您所看到的,在“/span”之后仍然有一些文本。然而,我试过的方法都不管用。我试过查看元素的子元素,试过//div[@ class = ' entry-content ']/p//text(),//div[@ class = ' entry-content ']/p//以下::*,都没用。如果有人有什么想法,我洗耳恭听!!!再次感谢您的宝贵时间。

编辑#1当我尝试不同的东西时,我在看超文本标记语言。在p标签下是我需要的文本,“今天的项目……”然后是一个改变文本颜色的跨度,包括一个链接,然后是更多的文本。我需要做的是跳过这个跨度继续阅读文本。也许我的问题应该是,你如何跳过跨度?谢谢你的关注。

编辑#2好吧,我要开始悬赏这个了。我真的需要一些帮助。我到处都找遍了,尝试了很多不同的东西。但是没有一样对我有用。过了那一关,我就看不到课文了。而且这种格式经常出现。我正在为应用程序解析的博客作者有时会改变她的文字风格,她改变风格后,我无法获得文本。任何帮助都将不胜感激。再次感谢您的关注。

编辑#3这是DOM树超文本标记语言的另一个屏幕截图。如果你能注意到我正在解析div类“条目内容”,有问题的文本被暴露了。以“今天……”开始,然后是改变文本颜色的跨度,我可以得到该文本。这是在那之后的文本,我需要,“它是一个……”就在关闭p标签之前。

我还将整个HTML放在要点上。在这里。问题所在的行是102。尽管HTML没有很好地复制。谢谢

共有2个答案

常宸
2023-03-14

叫我“原始”人,但是你可以把代码读成一个直截了当的字符串,然后用你要的标签把它分解成一个数组。这可以在PHP/Javascript/等中完成。然后你可以拉取包含你要寻找的文本的数组元素。不需要什么花哨的/外部的。

示例:

$string = '<p>text is here</p><p>more text is here</p>';
$string = explode('<p>', $string);

Now $string = [0] => "text is here</p>", [1] => "more text is here</p>"
宦翔
2023-03-14

代码中做一些修改,进一步了解层次结构,这在您的html示例中有效。注意:我在一个NSMutableString中追加了所有的条目内容,这样更容易。就像我在评论中警告你的,小心使用它。:-)

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]; 
NSData *data = [NSData dataWithContentsOfFile:filePath];
TFHpple *detailParser = [TFHpple hppleWithHTMLData:data];
NSString *xpathQueryString = @"//div[@class='entry-content']";
NSArray *node = [detailParser searchWithXPathQuery:xpathQueryString];

NSMutableString *test = [[NSMutableString alloc] initWithString:@""];

for (TFHppleElement *element in node) {
    for (TFHppleElement *child in element.children) {            
        if (child.content != nil) {
            [test appendString:child.content];
        }
        if ([child.children count]!= 0) {
            for (TFHppleElement *grandchild in child.children) {
                if (grandchild.content != nil) {
                    [test appendString:grandchild.content];
                 }
                for (TFHppleElement *greatgrandchild in grandchild.children) {
                    if (greatgrandchild.content != nil) {
                        [test appendString:greatgrandchild.content];
                    }
                    for (TFHppleElement *greatgreatgrandchild in greatgrandchild.children) {
                        if (greatgreatgrandchild.text != nil) {
                            [test appendString:greatgreatgrandchild.text];
                        }
                        if (greatgreatgrandchild.content != nil) {
                            [test appendString:greatgreatgrandchild.content];
                        }
                    }
                }
            }
        }
    }
}

NSLog(@"test = %@", test);
 类似资料:
  • 本文向大家介绍Android BroadcastReceiver接收收到短信的广播,包括了Android BroadcastReceiver接收收到短信的广播的使用技巧和注意事项,需要的朋友参考一下 一、知识介绍   1、broadcastReceiver是广播接受者,四大组件之一。   2、Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息。   3、使用场景:  

  • 问题内容: 我尝试在我的应用中收到短信,并且确定问题出在我的AndroidManifest.xml文件中 我的SmsReceive.java就是这样 我确定我的问题出在manifest.xml中,因为 什么都不显示 我该怎么办 ? 编辑:正如我们的朋友所说的,我曾经用过 在我的函数中,但LogCat中什么也不会显示,所以我断然确定我的问题出在我的AndroidManifest.xml注意:我在HT

  • 我试图使用我的手机作为GSM调制解调器。我使用SMSLib发送和接收短信用这个调制解调器。问题是,当我的手机(GSM调制解调器)收到短信时,我没有用SMSL通知ib.but代码整体是好的,例如当GSM调制解调器收到呼叫时通知我。我的代码没有任何错误,因为我只使用SMSLib示例代码接收消息。SMSLib示例代码是: 程序输出例如: modem.com4的网关状态更改,旧:停止- 调制解调器信息:制

  • 读取 M600 上的短信 如果您在手机上使用短信通知,在您收到新的短信时您会在 M600上看到一项通知。 读取短信 轻触通知。 通过 M600 回复短信 仅适用于与 Android 手机配对的 Polar M600。 您可以在手腕上回复短信。 如需回复短信 轻触通知查看所有短信 从屏幕底部向上滑动查看您可以进行的操作。 轻触Reply(回复)。 请选择您是语音回复、打字回复还是使用表情符号。或从屏

  • 本文向大家介绍Android接收和发送短信处理,包括了Android接收和发送短信处理的使用技巧和注意事项,需要的朋友参考一下 关于短信接收处理方面,当前已经有一些app做的比较好了,比如发给手机发验证码验证的问题,很多app在手机接收到验证码后,不需要输入,就直接可以跳过验证界面,这就是用到了对接收到的短信的处理。至于短信的发送,也没什么好说的了。在此也只是附上一个小实例。 效果图: MainA