gpt4 book ai didi

html - 在 hpple 和文本中获取 HTML 标签?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:27 24 4
gpt4 key购买 nike

下面的代码从某个 div 中获取所有文本。我是否可以从 div 以及 html 属性中获取所有文本?所以它还添加了所有 <p> </p>'s<br> </br>'s到字符串 myString?

//trims string from previous page
NSString *trimmedString = [stringy stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];

NSData *data = [[NSString stringWithContentsOfURL:[NSURL URLWithString:trimmedString]] dataUsingEncoding:NSUTF8StringEncoding];
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:data];
NSArray *elements = [xpathParser searchWithXPathQuery:@"//div[@class='field-item even']"];
TFHppleElement *element = [elements lastObject]; //may need to change this number?!
NSString *mystring = [self getStringForTFHppleElement:element];

trimmedTextView.text = [trimmedTextView.text stringByAppendingString:mystring];

方法在这里:

-(NSString*) getStringForTFHppleElement:(TFHppleElement *)element 
{

NSMutableString *result = [NSMutableString new];

// Iterate recursively through all children
for (TFHppleElement *child in [element children])
[result appendString:[self getStringForTFHppleElement:child]];

// Hpple creates a <text> node when it parses texts
if ([element.tagName isEqualToString:@"text"])
[result appendString:element.content];

return result;
}

如有任何想法,我们将不胜感激。干杯。

最佳答案

试试这个:

NSString *htmlDataString = [webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.outerHTML"];

这会将所有 HTML 输出为字符串。然后,您可以在 native 代码中解析它并找到您感兴趣的 div,就像您在上面的示例中所做的那样。

您也可以对 HTML 中的任何 DOM 元素执行此操作,例如:

NSString *htmlDataString = [webView stringByEvaluatingJavaScriptFromString: @"document.documentElement.getElemenById('mydiv')"];

效率更高,但需要一些 javascript 技能。

关于html - 在 hpple 和文本中获取 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12631034/

24 4 0