INNER Tag避免,Android网络服务

时间:2011-12-27 12:40:50

标签: php android

我有一个webservices(在PHP中)我需要解析它所以我需要标记名称。所以当我 viewsource 它在浏览器中我得到了...有一些span标签,并且它很明显地显示数据所以我怎么能避免这个?

<weeklyparties>
<details>
<details>
<status>
<weeklypartyid>13</weeklypartyid>
<weeklypartytitle>Thursdays</weeklypartytitle>
<weeklypartydesc><span style=\"font-family: Tahoma; color: #FFFFFF;\">Rare Rooftop - Chelsea</span><br></weeklypartydesc></status></details><details><status><weeklypartyid>14</weeklypartyid><weeklypartytitle>Fridays</weeklypartytitle><weeklypartydesc><span style=\"font-family: Tahoma; color: #FFFFFF;\">Bar Basque</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Forum</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Ganzevort Park</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Hudson Terrace</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\"></span><br></weeklypartydesc></status></details><details><status><weeklypartyid>15</weeklypartyid><weeklypartytitle>Saturdays</weeklypartytitle><weeklypartydesc><span style=\"font-family: Tahoma; color: #FFFFFF;\">Aspen Social Club</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Bar Basque</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Crimson</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Forum</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Lexicon</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">
Lounge 16 (New Highbar)</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Hudson Bar</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: #FFFFFF;\">Hudson Terrace</span><br style=\"font-family: Tahoma; color: #FFFFFF;\"><span style=\"font-family: Tahoma; color: 

2 个答案:

答案 0 :(得分:3)

我想你要开发一个Java或Android应用程序。在这种情况下,您可以使用第三方库进行HTML解析,例如

要使用jsoup查找所有weeklypartydesc,您将使用以下代码片段:

Document doc = Jsoup.connect("http://your.url/").get();
Elements partyDesc = doc.select("weeklypartydesc");

for (Element entry : partyDesc)
{
    // all the weeklypartydesc as string
    Log.i(entry.text().toString());
}

此代码还会删除br和span元素。您可以在StackOverflow上使用jsoup轻松找到其他信息(即使与Android结合使用)。不要忘记为您的应用程序提供互联网许可。

答案 1 :(得分:0)

您没有在问题中写下您需要的标签名称。我假设您正在寻找<weeklypartydesc>,并且您希望在那里获得纯文本。

此外,当您使用浏览器中的视图源时,我假设您看不到某些CDATA元素(否则XML将无效)。

您可以使用DOMDocument执行此操作。首先获取您感兴趣的元素,然后通过剥离标记将该元素内的HTML数据转换为纯文本:

# obtain the element in question
$doc = new DOMDocument();
$doc->loadXML($xml);
$xp = new DOMXPath($doc);

foreach($xp->query('/weeklyparties/details/status/weeklypartydesc') as $weeklypartydesc)
{
    # obtain the HTML inside that element and convert it into plain text
    $text = strip_tags($weeklypartydesc->nodeValue); # Rare Rooftop - Chelsea
}

Demo

如果strip_tags不符合您的需求,您可以从HTML片段中创建DOMDocument并使用XPath获取所有文本节点,这些节点将以纯文本形式提供HTML同样。