Jde obarvit text (CSS) na základě textového řetězce?
Denně dělám monitoring médií. Přijde mí XML soubor, ten si nastyluji a pak z něj vybírám články (tak 10 z 50). Bylo by pro mě hodně přehledné, kdybych si mohl obarvit URL, jelikož mohu vybírat pouze články, kde URL je. Problém je v tom, že nemá URL žádný identifikátor a je součástí textu článku
zdroj
s CSS
Jde to nějak udělat?
Nad článkom máš ten odkaz naštýlovaný ako odkaz, takže si ho môžeš naštýlovať farebne - to nestačí?
Ináč na toto je najvhodnejšie použiť XSLT transformáciu, pomocou ktorej môžeš úplne odstrániť všetky články bez odkazu, takže ich ani neuvidíš - viď príloha.
Namiesto tohoto:
Použiješ toto:
Přišel jsem na to, že by stačilo vložit za URL| <span style='color: blue'>. Jenže neumím udělat regulární výraz, aby se mi vložilo ukončení </span> za adresu. Když to udělám ručně, mám to zobrazené jak potřebuji (nic jiného nechci). Přidal bych si to v PSPadu jako uživatelský konvertor. Nahradit
URL| za URL| <span style='color: blue'> a bylo by.
Aha, pokud tedy není zakázané ten dokument měnit ( nebo jej číst a z něj vytvoří jiný), pak je to primitivní.
A regulerní výraz je jednoduchý (ruby)
"URL | http.cz".sub /(?<=^URL \| )(.+)/, '@\1@'
Stačí jedna back assertion ?<= a jedna backreference \1. Php umí v tomhle víc, umí je i pojmenované , více zde
http://php.net/manual/en/regexp.reference.back-ref erences.php
http://www.php.net/manual/en/regexp.reference.subp atterns.php
A nezapomenout na escapování! (odkaz bude hodnota html atributu href=)
A jedna rada: je zhovadilost psát <span style color", jelikož se jedná o přímý vizuální stylování. Logičtější je dát třeba <footer><a href=></footer> a nastylovat to externě
Mám to jen na lokale a je to soubor čistě pro mou potřebu. Jasně, že bych to nahradil pouze <span> a ten nastyloval v externím, kde jsou další styly. Potřebuji URL| nahradit za <span>, pak aby se našly ty konce adres a vložilo se </span> To věe v PSPadu.
Nahraď si v tej XSLT transformácii tú časť na odstraňovanie článkov bez odkazu:
Za zvýrazňovanie odkazu:
Nějak se mi nedaří. Ani z
exslt-function.html
nejsem moudrý. Mám tam
a
Ty si pridal xml-stylesheet do XSLT transormácie? Tak to nefunguje. Máš spraviť toto:
1. Stiahneš si tú XSLT transformáciu.
2. Vyhodíš z nej šablónu pre "Document[not(Hlavicka_Clanku/Odkaz)]".
3. Vložíš do nej šablónu pre "Text_Clanku".
4. V xml-stylesheet, ktorý je v tom dátovom XML, budeš namiesto CSS odkazovať na XSLT.
- Pres id="#", class"#", nastavit v CSS, ale jak jde o odkaz, ktery bude i tak modry, uz od začatku bych ho dal treba do<me>, <span> a v CSS určit zbytek, jak de o odkaz, tak barvy po kliku, najetí, doplnit s hover.
Když mi prozradíš, jak tam mám z URL| ruznéadresy udělat <span>ta adresa</span>, tak mi to bude stačit.
<a style = "color: #800000" href = "rúzné adresy/"> Text </ a>
Nebo
<SPAN style="color xxxxxx:url(scare.jpg)">
text</SPAN>
Nebo to nechat jen v <a> nemas-li ji víc (jinak pres class"">
CSS
a{color:red} /*počáteční barva*/
a:hover{color:blue} /*barva po prejetí misí*/
a:active{color:green}/*barva kdyz kliknes*/
visited{color:black}/barva po zhlédnutí*/
Ale i tak, bych odkazu pridal spíse kupríkladu:
<a class="ahoj" urlxxxxxxx></>
A v CSS
.ahoj
{
Color: xxx;
xxxx;
xxxx;
}
Není to odkaz a nebude to odkaz. Je to pouze textový řetězec a chci si to jen obarvit, abych to lépe viděl.
Obarvit to umím. když URL| nahradím <span style="color blue">taadresa. Ale neumím vložit za adresu ukončení spanu jinak, než ručně a to dělat nebudu.
Tady to je, pokud mas teda Javu na PC. Spustis z cmd:
Vygeneruje se output.xml, kde bude to, co chces.
Dík, vyzkouším a písnu tu.
Jo a to escapování vyřešíš pomocí http://www.php.net/manual/en/function.preg-replace -callback.php]
preg_replace_callback — Perform a regular expression search and replace using a callback[/url]
V tom hledám složitosti, jak obarvit adresu. Jde jen o to, jak to čtu odspodu, abych viděl, že má článek URL, takže jsem si přidal do uživatelského konvertoru, aby se URL nahradilo za <url>URL</url>, to si pak nastyloval, aby to bylo dobře vidět.
origoš
http://krata.bubakov.net/www/helpnet/anopress/orig .xml
nastylované
http://krata.bubakov.net/www/helpnet/anopress/orig -css.xml
Používám konvertor, makro a ctrl+s. Ještě to musím zredukovat na pouhé jedno zmáčknutí. Čili pustit makro, makro vloží konvertor, link na CSS a uloží soubor. Jenže nemohu přijít příkazy, jak vložit do makra vložení konvertoru a uložení souboru.
Děkuji všem za rady a značím za vyřešené.