- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试自学如何在 iOS 中筛选剪贴簿留言,并已学会如何在 Android 上执行此操作。
我正在使用 hpple 库。
我目前正在努力使用 hpple 复制我在 Android 上的内容,因此我正在寻找有关如何正确使用 hpple 来解析我的 HTML 内容的一些指导。
我目前正在尝试从我的 HTML 网站解析以下内容:
<table class="tableForAppContent">
<tr>
<td nowrap="nowrap">
<a href='testLink'>CODE</a> MyTestCode</td>
<td nowrap>
<a href='testLink'>Number 123</a></td>
<td></td>
<td>Company Name</td>
<td nowrap>
11:10 AM
</td>
<td class="tableList" nowrap>
</td>
<td>
</td>
<td nowrap>
Status of company
<br />
</td>
<td>
</td>
</tr>
</table>
我需要能够获取您在 HTML 中看到的所有文本值,因此我需要能够获取以下值:“CODE MyTestCode”、“Number 123”、“Company Name”、“11:10 AM"和 "公司状况"。
这是我目前的代码:
NSURL *url = [NSURL URLWithString:@"MyTestSite.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setTimeoutInterval: 30.0]; // Will timeout after 30 seconds
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue currentQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (data != nil && error == nil)
{
NSString *result = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:data encoding:@"NSASCIIStringEncoding"];
NSString *tutorialsXpathQueryString = @"//table[@class='tableForContent']//td";
NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];
NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in tutorialsNodes) {
NSLog(@"%@", [[element firstChild] content]);
}
}
else
{
// There was an error, alert the user
}
}];
我无法为以下代码行找出正确的 XPath 查询字符串
NSString *tutorialsXpathQueryString = @"//table[@class='tableForContent']//td";
无论我尝试什么,我一次只能找到一个元素,所以我只能得到“公司名称”值,但没有别的。
任何人都可以帮助查询字符串吗?
最佳答案
尝试使用 XPath 表达式
//table[@class='tableForContent']//*[normalize-space(text()) != '']
它应该给出包含非全空白文本的所有节点。
编辑
上面的解决方案分割格式<td>
条目进入多个节点,这不是您想要的。因此,事实上,就粒度级别而言,您原来的 XPath 似乎是正确的方法。
以下 XPath
//table[@class='tableForAppContent']//td[* or normalize-space(text()) != '']
给你“权利”<td>
条目,也就是说,只有那些包含文本本身或至少一个子节点的条目,这应该导致所有非空节点。
但是,结果节点集由具有子结构的节点组成,这意味着它们既包含文本节点,也包含具有文本节点的子节点。由于您使用这些结果节点集作为 XPath 和调用例程(在 Objective C 中?)之间的接口(interface),您可能必须自己从该子树中提取文本元素并将它们连接起来。也许您可以使用一些库例程来实现这一点。如果没有,您始终可以通过递归遍历结果节点树来完成。
关于iOS 解析内容需要 hpple 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382144/
我试图使用 HPPLE 从网站进行解析。我成功使用了该标签,但它似乎不适用于其他标签。请指教。 这是我使用的代码。 NSData *htmlData = [[NSData alloc] initWit
我正在使用 hpple 来解析 HTML 文档。我遵循了 Ray Wenderlich 的教程,并让他们的示例文件一切正常。但是,我需要稍微更改一下才能为我 friend 的博客读取某个 HTML 文
我正在使用 hpple 来解析一些 HTML。我使用的是 Xcode 4.6 和 iOS 6.1。看起来像这样。 我可以使用以下 XPathQueryStrings 提取文本和图像。 文本==> //
我目前正在尝试自学如何在 iOS 中筛选剪贴簿留言,并已学会如何在 Android 上执行此操作。 我正在使用 hpple 库。 我目前正在努力使用 hpple 复制我在 Android 上的内容,因
我正在使用 Hpple,到目前为止它一直很棒,但是我想将所有 div 放在另一个里面,我可以做到。但是后来我无法进一步解析内容(innerHTML,并且在源代码中它被标记为 innerHTML 而不是
我花了几个小时尝试将 Hpple 集成到一个新的 Swift 项目中,但没有成功。我将 6 个文件 TFHpple.h TFHpple.m、TFHppleElement.h TFHppleElemen
我对 objective-c 很陌生,但对常规 C 很熟悉,而且我正在研究 iPhone 开发。现在我在学校评分系统中的所有节点都是零我知道它们在正确的 xPath 因为 //table[@class
我尝试了所有对我而言有意义的事情。我有以下html代码,尝试在Objective-C中使用XPath进行解析: bar 我通过"bar"获得//tr/td[@class
我正在使用 hpple html 解析器:https://github.com/topfunky/hpple 为了测试该函数,我将其添加到一个简单的项目中,并且能够毫无错误地编译和打开模拟器,但是当调
我需要在我的应用程序中将网站的内容解析为表格 View 。我试过 hpple 并且在一些测试用例中它有效。但在我的具体情况下,我无法让它工作......HTML:
我在 Swift 中使用 hpple,并希望使用相同的语法。 Objective-C 完美运行: myElement.title = [[element firstChild] content]; S
我想做的是解析站点上一个页面的多个部分。这是我正在做的: NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.cetsp.com.br/"]
所以我认为这是我最后一个 Hpple 问题!我在使用 Hpple 解析的 HTML 文档中找到了一个条目。我尝试了许多不同的查询,但没有运气。这是 HTML 的示例。 我可以通过//div[@clas
我如何在 iOS 中使用 hpple 解析包含许多子标签的复杂 html。我找不到关于这个库的任何好的和复杂的教程或任何好的文档。通过简单的解析没有任何问题。 html 示例是: today in
hpple中是否可以递归只获取子元素的所有文本内容? TFHppleElement 类中有任何方法吗?例如 JavaScript document.getElementById("testdiv").
我有以下 HTML 片段: Cars Toyota
下面的代码从某个 div 中获取所有文本。我是否可以从 div 以及 html 属性中获取所有文本?所以它还添加了所有 's和 's到字符串 myString? //trims string fr
我使用 hpple 从网络上的 xml 文件中获取一些数据。在我的 xml 文件中,我有一堆不同的部分可以从中获取数据(大约 20 个)。 这是我用来获取数据的代码 - (void)getMenuIt
我将 hpple 文件添加到我的 Swift 项目中,并在以下导入时在我的 XPathQuery.m 类中收到以下错误消息: #import --> 找不到“libxml/tree.h”文件我还收到
我有一些看起来像这样的 xml: Plain Bagel
我是一名优秀的程序员,十分优秀!