【问题标题】:how to get only specific portion of text from the url using iPhone SDK?如何使用 iPhone SDK 从 url 中仅获取特定部分的文本?
【发布时间】:2012-11-09 09:50:31
【问题描述】:

在我的应用程序中,我有一个网页的 URL,我想通过识别 html 标签从该 URL(其 html 页面)中获取特定的部分/部分。

例如,我想根据 html 源代码获取 <div id="content"> to </div> 的部分。 这样我就可以将它保存在另一个文件中。

例如我的网址是 http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/,打开一个html页面。我只想要该页面的一部分。

我该怎么做?

谢谢..

【问题讨论】:

    标签: iphone html objective-c ios xcode


    【解决方案1】:

    查看来自 Raywenderlich 的教程 How to Parse HTML on iOS。希望这对您有所帮助。

    http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

    【讨论】:

      【解决方案2】:

      您可以使用开源库 GDataXMLNode。它允许您操作 xml 文件。来看看

      http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/?r=129

      【讨论】:

        【解决方案3】:

        最好的办法是使用NSXMLParser 搜索div 标记,其属性id 等于“内容”。捕获所有中间内容,直到适当的 </div> 结束标记。见Apple's tutorial

        【讨论】:

          【解决方案4】:

          这里是 Cocoa+NSString 解决方案(工作 + 测试)。您会看到,当您使用这样的自定义解析器时,唯一真正的技巧是如何找到“结束”点。事实上,你不能只是去 "" 因为其他 div 在中间打开,所以你的解析器会在你正在寻找的内容结束之前停止。我显然不是说没有其他方法可以使用更复杂的 XML 解析器。但是网页并不那么容易解析,它们的代码并不总是完美的......而且这很简单且有效(您仍然应该考虑获取 URL 内容的另一种方式,而不是 stringWithContentsOfURL: 这不是异步的):

          NSString *originalString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/"] encoding:NSUTF8StringEncoding error:nil];
          
          NSScanner *scanner = [NSScanner scannerWithString:originalString];
          NSString *extractedString = nil;
          
          [scanner scanUpToString:@"<div id=\"content\">" intoString:nil];
          [scanner scanString:@"<div id=\"content\">" intoString:nil];
          
          [scanner scanUpToString:@"<div style=\"clear:both;\">" intoString:&extractedString];
          
          if (extractedString) 
          {
              // string was extracted
              NSLog(@"%@", extractedString);
          }
          

          【讨论】:

          • 你能说得更具体些吗?是不是你不知道如何将页面内容变成“originalString”?解析本身有效,我进行编辑以展示一种非常基本的(应针对实际使用进行改进)将内容放入 originalString 的方法
          • 我怎样才能从中只获取图片 URL?并将所有解析数据显示为 uiwebview 中的 html 页面。
          • 你能接受这个作为这个问题的答案吗?您要问的是另一个问题:您想在 UIWebView 中显示 HTML 代码。请先使用此处的搜索功能,或查找 UIWebView loadHTMLString:baseURL:
          猜你喜欢
          • 2012-11-10
          • 1970-01-01
          • 1970-01-01
          • 2017-09-20
          • 1970-01-01
          • 1970-01-01
          • 2021-10-22
          • 1970-01-01
          • 2023-04-04
          相关资源
          最近更新 更多