XPath XML查询

时间:2011-07-25 08:27:16

标签: iphone xml xpath hpple

我在使用xml查询时遇到问题。下面是xml文档。我需要做的就是在cdata部分显示文本。我写了这个查询:/item/title/text(),但它崩溃了,不起作用。

<title>
 <![CDATA[Envious at Envie! 50% off anything you want, anytime you want!]]>
</title>

我正在使用iphone xcode的hpple库。这是我的代码:

    NSData *urlData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:[@"http://www.twangoo.com/userfiles/rss/rss_hong-kong.xml" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

    TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:urlData];

    NSArray *title = [xpathParser search:@"//rss/channel/item[1]/title/text()"];

   TFHppleElement *element2 = [title objectAtIndex:0];

    NSString *titleString = [element2 content];

    NSLog(@"@%", titleString)

它返回nil。

2 个答案:

答案 0 :(得分:0)

使用此XPath:/item/title/text()

答案 1 :(得分:0)

如果您可以提供有关您的环境,语言,库使用的语言以及产生的实际错误消息的更多信息,这将有很大帮助。

但是,我认为xsl样式表中的有效xslt语句是

...

<xsl:value-of select="/item/title"/>

...

如果您以编程方式在PHP中访问该数据,那将是:

$doc = new DOMDocument;
$doc->loadXML("<item><title>My name is Kevin</title></item>");
$xpath = new DOMXPath($doc);
$query = "/item/title";
$entries = $xpath->query($query);
foreach ($entries as $entry) { print $entry->nodeValue; }