2016-06-28 5 views
2

ich mit folgendem RSS gerade arbeite: http://aplicaciones.esi.us.es/antalumnos/rss.xmlWie analysieren/Format einen RSS-Tag voller CSS-Code

Wie wir, Description-Tag enthält den Text, den ich brauche und auch zwischen der voll von CSS-Code ist es sehen können Text. Das ist ein Problem, denn sobald ich das Description-Tag parse, bekomme ich auch den ganzen CSS-Code.

Der RSS-Link ist mit Drupal 6 gemacht und kann nicht geändert werden, außerdem zeigen andere RSS-Reader als Feedly den gesamten Inhalt perfekt ohne Code zwischen den Text. Wie kann ich mit diesem Problem umgehen?

<description> 
&lt;p&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: Verdana, Geneva, sans-serif; font-size: 13.3333px; background-color: rgb(255, 255, 255);&quot;&gt;El pasado sábado 11 de Junio cerramos la temporada de rutas en bici organizadas por la Asociación con un recorrido de 72 Km por la conocida y espectacular Vía Verde de la Sierra. Con un día soleado y no excesivamente caluroso partimos con nuestras máquinas desde la estación de Puerto Serrano en dirección a Olvera, disfrutando de un bello y rico entorno natural fuimos avanzando con paradas en los sitios más singulares (Chaparro de la Vega, estación de Coripe, Peñón de Zaframagón y estación de Olvera. Una vez aquí retornamos al punto de partida.&lt;/span&gt;&lt;/p&gt; 
&lt;div style=&quot;padding-top: 0px; border-top-width: 0px; color: rgb(51, 51, 51); font-family: Verdana, Geneva, sans-serif; font-size: 13.3333px; background-color: rgb(255, 255, 255);&quot;&gt; 
&lt;p&gt;A pesar de la distancia recorrida la ruta se hizo llevadera gracias a la coincidencia de varios factores como la buena compañía, la belleza del entorno, un buen firme parq rodar sin muchos desniveles y con treinta túneles en los que refrescarse a su paso.&lt;/p&gt; 
&lt;p&gt;Finalmente en el restaurante de la estación de Puerto Serrano compartimos, como de costumbre, un agradable rato para reponer energías degustando los productos de la zona.&lt;/p&gt; 
&lt;p&gt;Facilitamos algunas fotos:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: Verdana, Geneva, sans-serif; font-size: 13.3333px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/div&gt; 
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: Verdana, Geneva, sans-serif; font-size: 13.3333px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a title=&quot;http://aplicaciones.esi.us.es/antalumnos/node/3144&quot; href=&quot;http://aplicaciones.esi.us.es/antalumnos/node/3144&quot; target=&quot;_blank&quot; rel=&quot;noreferrer&quot; style=&quot;color: rgb(1, 134, 186);&quot;&gt;http://aplicaciones.esi.us.es/antalumnos/node/3144&lt;/a&gt;&lt;/div&gt; 
</description> 
+0

Wie parsen Sie Ihr Tag? Von den wenigen, die ich über CSS weiß, ist der Code, den Sie nicht wollen, der Stil. Also soll alles zwischen und einschließlich "style =" und """ am Ende entfernt werden. Abhängig davon, wie Sie analysieren, können Sie eine Zeile trennen, den Index des '&' finden und wenn die folgenden 4 Zeichen "quot" sind, ist es der Anfang, so dass Sie den Startindex 6 vor dem '&' (entsprechend ' style = '), suchst du dasselbe weiter, würde dies das Ende markieren. Sie schneiden die Positionen um und Sie ersetzen die Linie. – OliPro007

+0

Ich benutze Simple XML Framework http://simple.sourceforge.net/home.php und wenn ich ein Tag parse, bekomme ich den vollen Inhalt. Der Text, den ich brauche, ist mit dem Code gemischt, und ich weiß nicht, wie man ihn trennt und nur den Text nehme, den ich will. Wahrscheinlich ist Ihre Antwort der einzige Weg, dies zu tun. Vielen Dank – mhkore

Antwort

1

Der beste Weg, alle Vorkommen von style=... zu ersetzen, die ich nehme an die CSS-Code-Teile sind entfernt werden sollen, ist ein regulärer Ausdruck (regex) zu verwenden. Ich benutze diese site als Referenz. Hier ist ein kleines Beispiel:

String text = "style=&quot;hfhdjdh;&quot; YAY"; 
String regex = "(style=&quot;)(.*)(&quot;)"; 
System.out.println(text.replaceAll(regex, "replaced")); 

Dieser Wille Ausgang replaced YAY. Im Wesentlichen, wie in meinem Kommentar, findet der Regex Orte, wo es style=&quot; gibt, (. *) Ignoriert alles im Inneren und wir markieren das Ende mit einem anderen &quot;. Sie müssen nur die Ersetzungszeichenfolge durch ein Leerzeichen oder einfach eine leere Zeichenfolge ändern und es wird es aus Ihrem Inhalt entfernen. replaceAll sollte alle Vorkommen entfernen, so dass Sie nicht Zeile für Zeile suchen müssen.