Portál AbcLinuxu, 8. listopadu 2025 10:15
Nevíte, jak ze souboru tohoto typu:
<option value="152">Abertamy</option>
<option value="269">Adamov u Brna</option>
<option
value="479">Adolfovice</option>
<option value="182">Adršpach</option>
<option value="170">Albrechtice</option>
<option
value="271">Aš</option>
<option value="293">Babylon</option>
<option
value="459">Bačetín</option>
<option value="179">Bartošovice v
Orlických horách</option>
<option value="410">Batelov</option>
<option value="155">Batňovice</option>
<option value="233">Bečov nad
Teplou</option>
<option value="1">Bedřichov</option>
<option
value="349">Bechyně</option>
získat asi nejlépe pomocí nějakého rogulárního výrazu ty hodnoty value="xxx" a pak textové hodnoty jako např.: Abertamy, a udělal z nich řetězce jako
INSERT INTO #__tabulka SET id=152, name=Abertamy;
Za odpovědi předem děkuji.
Pokud by se nelibily mezery, jeste muzete pridat jedno s/\ \ +/\ /g; - pokud jsou v tom souboru tedy opravdu jen mezery a ne treba tabulatory.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="option"> INSERT INTO #__tabulka SET id=<xsl:value-of select="@value"/>, name='<xsl:value-of select="."/>'; </xsl:template> </xsl:stylesheet>Pokud přidáte k datovému souboru instrukci pro zpracování, zobrazí vám výsledek i každý lepší webový prohlížeč.
<?xml version="1.0 ?> <?xml-stylesheet type="text/xml" href="template.xsl" ?> <data> <option value="152">Abertamy</option> … </data>
Benešov nad
Černou
tak aby se z toho stalo
Benešov nad Černou
<xsl:value-of select="."/> použít
<xsl:value-of select="normalize-space(.)"/>případně
<xsl:value-of select="normalize-space(translate(.,' ',' '))"/>

Pattern p = Pattern.compile("<option value=\"([1-9][0-9]*)\">(.*?)</option>", Pattern.DOTALL);
Matcher m = p.matcher(...data...);
while(m.find()) System.println("INSERT INTO #__tablulka SET id=" + m.group(1) + ", name=" + m.group(2)); ale osobně bych šel do té transformace :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.