2013-04-16 1 views
0

Я использую QML XmlListModel для отображения XML-фидов, который работает. За исключением того, что форматирование отключено из-за того, что HTML содержится в теге описания ниже.Анализ HTML из тега описания XML с недопустимыми символами

<description>&lt;p&gt;&lt;a href="http://news.yahoo.com/north-korea-issues-military-threats-founders-birthday-000221193.html"&gt;&lt;img src="http://l1.yimg.com/bt/api/res/1.2/aSYzNa8DFZPW0FCALm20Yw--/YXBwaWQ9eW5ld3M7Zmk9ZmlsbDtoPTg2O3E9ODU7dz0xMzA-/http://media.zenfs.com/en_us/News/Reuters/2013-04-15T141115Z_1_CBRE93E0OEY00_RTROPTP_2_KOREA-NORTH.JPG" 
    width="130" height="86" alt="North Korean soldiers, workers and students place flowers before statues of Kim Il-sung and Kim Jong-il at Mansudae in Pyongyang" align="left" title="North Korean soldiers, workers and students place flowers before statues 
    of Kim Il-sung and Kim Jong-il at Mansudae in Pyongyang" border="0" /&gt;&lt;/a&gt;By Ju-min Park and Jack Kim SEOUL (Reuters) - North Korea made new threats of military action on Monday as the reclusive nation celebrated the anniversary of its founder&amp;#039;s 
    birth, stoking tension on the peninsula with a new &amp;quot;ultimatum&amp;quot; to South Korea in the stand-off over its nuclear program. The latest statement from Pyongyang followed threats of nuclear attacks on the United States, South Korea and Japan, 
    after new U.N. sanctions were imposed in response to the North&amp;#039;s latest nuclear test in February. ...&lt;/p&gt;&lt;br clear="all"/&gt; 
</description> 

Я предполагаю, так как символы, такие как < и > не допускаются в XML HTML, становится так сменились персонажи.

Я использую модель, ниже которой работают, за исключением некоторых проблем, когда описание содержит текст HTML, который был изменен.

XmlListModel { 
    id: model 
    property string feedUrl: rss.activeFeed 
    source: "http://" + feedUrl 
    query: "/rss/channel/item" 
    property ListModel temp 
    property int action 
    XmlRole { name: "title"; query: "title/string()" } 
    XmlRole { name: "link"; query: "link/string()"} 
    XmlRole { name: "description"; query: "description/string()" } 
} 

ответ

0

Попробуйте обертывание ваш HTML и длинный URL с CDATA тегами, XML будет, за исключением запрещенных символов, что путь:

<description><![CDATA[ 

&lt;p&gt;&lt;a href="http://news.yahoo.com/north-korea-issues-military-threats-founders-birthday-000221193.html"&gt;&lt;img src="http://l1.yimg.com/bt/api/res/1.2/aSYzNa8DFZPW0FCALm20Yw--/YXBwaWQ9eW5ld3M7Zmk9ZmlsbDtoPTg2O3E9ODU7dz0xMzA-/http://media.zenfs.com/en_us/News/Reuters/2013-04-15T141115Z_1_CBRE93E0OEY00_RTROPTP_2_KOREA-NORTH.JPG" 
    width="130" height="86" alt="North Korean soldiers, workers and students place flowers before statues of Kim Il-sung and Kim Jong-il at Mansudae in Pyongyang" align="left" title="North Korean soldiers, workers and students place flowers before statues 
    of Kim Il-sung and Kim Jong-il at Mansudae in Pyongyang" border="0" /&gt;&lt;/a&gt;By Ju-min Park and Jack Kim SEOUL (Reuters) - North Korea made new threats of military action on Monday as the reclusive nation celebrated the anniversary of its founder&amp;#039;s 
    birth, stoking tension on the peninsula with a new &amp;quot;ultimatum&amp;quot; to South Korea in the stand-off over its nuclear program. The latest statement from Pyongyang followed threats of nuclear attacks on the United States, South Korea and Japan, 
    after new U.N. sanctions were imposed in response to the North&amp;#039;s latest nuclear test in February. ...&lt;/p&gt;&lt;br clear="all"/&gt; 

]]></description> 
+0

Ну тогда вы должны быть в состоянии сказать то, что сценарий тянет HTML, чтобы обернуть его в тегах CDATA. Проверьте tyhis и посмотрите, не можете ли вы это сделать в своем коде где-нибудь ... http://api.jquery.com/wrap/ Надеюсь, это поможет вам в противном случае, мне нужно будет узнать больше о том, какой метод вы используете –