2011-07-25 146 views
1

我在使用xml查詢時遇到問題。以下是xml文檔。我需要做的就是顯示cdata部分中的文本。我寫了這個查詢:/item/title/text(),但它崩潰並且不起作用。XPath XML查詢

<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。

+0

kirill說的是正確的.once發表您的標題爲xml – ajay

+0

提供輸入XML。 –

+0

我不知道你的框架,但你的代碼'/ rss/channel/item [1]/title/text()'的XPath應該檢索'Envie Envie! 50%折扣任何你想要的,任何時候你想要的!' –

回答

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; } 
+0

謝謝,我已經編輯過帖子,請看看 – kevin

+0

對不起,我沒有看到iPhone的標籤,不能幫助你,因爲我完全不熟悉該語法 – Ryan

0

使用這個XPath:/item/title/text()

+0

我試過了,但它仍然不工作:( – kevin

+0

@kevin,令人難以置信的這個XPath應該會返回:'我的名字是凱文!!' –

+0

我編輯過這個問題,我使用過的圖書館 – kevin