Jac*_*ale 5 iphone xhtml xpath parsing touchxml
我一直试图解析一个XHTMLdoc TouchXML,但它始终找不到任何标签XPath query.
以下是XHTML:
XHTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Mac OS X (vers 25 March 2009), see www.w3.org" />
<title></title>
</head>
<body>
<p>
<a href="http://www.flickr.com/photos/55397648@N00/5987335786/"
title="casavermeer5.jpg by the style files, on Flickr">
<img src="http://farm7.static.flickr.com/6127/5987335786_abec990554_o.jpg"
width="500" height="750" border="0" alt="casavermeer5.jpg" />
</a>
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因此,我们可以看到有一个"p"标签,"a"标签和"img"标签
我所做的然后显示如下代码:
CXHTMLDocument *doc = [[[CXHTMLDocument alloc] initWithXHTMLString:XHTML options:0 error:&error] autorelease];
NSLog(@"error %@", [error localizedDescription]);
NSLog(@"doc children count = %d", [doc childCount]);
NSArray *imgNodeArray = [doc nodesForXPath:@"//img" error:&error];
NSLog(@"imgNodeArray = %d", [imgNodeArray count]);
NSLog(@"error %@", [error localizedDescription]);
Run Code Online (Sandbox Code Playgroud)
结果是
error (null)
doc children count = 2
imgNodeArray = 0
error (null)
Run Code Online (Sandbox Code Playgroud)
因此,在解析XHTML文档时没有任何错误,并且没有错误XPath query.此doc也在根目录下有两个孩子("body"标签和"head"标签).但问题是它无法找到"img"标签.我试图将"img"替换为其他可能的标签名称(例如p,a,甚至是正文,头部),根本没有运气.
有人可以帮我吗?
PS
实际上原始文档是HTML,我在TouchXML lib中使用了CTidy类来首先将HTML整理到XHTML.上面的XHTML来自CTidy的结果.
我还试图在XPath查询中添加命名空间,就像这样
NSMutableDictionary *namespaceDict = [NSMutableDictionary dictionary];
[namespaceDict setValue:@"http://www.w3.org/1999/xhtml" forKey:@"xhtml"];
Run Code Online (Sandbox Code Playgroud)
并将XPath查询更改为
NSArray *imgNodeArray = [doc nodesForXPath:@"//xhtml:img" namespaceMappings:namespaceDict error:&error];
Run Code Online (Sandbox Code Playgroud)
仍然没有运气,找不到任何结果.
尝试这个//img。当您使用//它时img,无论它位于页面中的哪个位置,都会获取标签。
它比//xhtml:img- 因为有时层次标签在后面的代码中会发生一些变化,所以最好是全局的,而不是太具体。
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |