Created
March 8, 2021 20:02
-
-
Save spddl/0266ec4306bbbffdb63ab1fd7a8ac567 to your computer and use it in GitHub Desktop.
xml_POC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"bytes" | |
"encoding/xml" | |
"io/ioutil" | |
"os" | |
) | |
// xml => struct https://www.onlinetool.io/xmltogo/ | |
// type OrginalCATALOG struct { | |
// XMLName xml.Name `xml:"CATALOG"` | |
// Text string `xml:",chardata"` | |
// PLANT []struct { | |
// Text string `xml:",chardata"` | |
// COMMON string `xml:"COMMON"` | |
// BOTANICAL string `xml:"BOTANICAL"` | |
// ZONE string `xml:"ZONE"` | |
// LIGHT string `xml:"LIGHT"` | |
// PRICE string `xml:"PRICE"` | |
// AVAILABILITY string `xml:"AVAILABILITY"` | |
// } `xml:"PLANT"` | |
// } | |
type NewCATALOG struct { | |
PLANT []struct { | |
COMMON string `xml:"COMMON"` | |
PRICE string `xml:"PRICE"` | |
} `xml:"PLANT"` | |
} | |
func main() { | |
xmlFile, err := os.Open("./plant_catalog.xml") // Laden der Datei | |
if err != nil { | |
panic(err) | |
} | |
defer xmlFile.Close() | |
byteValue, err := ioutil.ReadAll(xmlFile) // liest die Datei | |
if err != nil { | |
panic(err) | |
} | |
// newXMLData := OrginalCATALOG{} // so würde man alle Daten auslesen können | |
newXMLData := NewCATALOG{} // gibt die neue Struktur vor in der die Daten geladen werden | |
xml.Unmarshal(byteValue, &newXMLData) // von []byte ins struct | |
/// hier könnte man die Daten nun auslesen/bearbeiten/verarbeiten | |
// for index, item := range newXMLData.PLANT { | |
// fmt.Println(index, item.COMMON) | |
// } | |
output, err := xml.MarshalIndent(newXMLData, " ", " ") // hier formatieren wir die Daten wieder in ein []byte | |
if err != nil { | |
panic(err) | |
} | |
// https://stackoverflow.com/questions/5541222/what-is-the-xa-character | |
// das hängt irgendwie mit der xml Formatierung zusammen, wenn im xml CDATA genutzt wird soll das wohl anders sein | |
output = bytes.ReplaceAll(output, []byte("
"), []byte("")) // https://golang.org/pkg/bytes/#ReplaceAll | |
err = ioutil.WriteFile("./new_plant_catalog.xml", output, 0644) // und das []byte speichern | |
if err != nil { | |
panic(err) | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<NewCATALOG> | |
<PLANT> | |
<COMMON>Bloodroot</COMMON> | |
<PRICE>$2.44</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Columbine</COMMON> | |
<PRICE>$9.37</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Marsh Marigold</COMMON> | |
<PRICE>$6.81</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cowslip</COMMON> | |
<PRICE>$9.90</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Dutchman's-Breeches</COMMON> | |
<PRICE>$6.44</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Ginger, Wild</COMMON> | |
<PRICE>$9.03</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Hepatica</COMMON> | |
<PRICE>$4.45</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Liverleaf</COMMON> | |
<PRICE>$3.99</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Jack-In-The-Pulpit</COMMON> | |
<PRICE>$3.23</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Mayapple</COMMON> | |
<PRICE>$2.98</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Phlox, Woodland</COMMON> | |
<PRICE>$2.80</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Phlox, Blue</COMMON> | |
<PRICE>$5.59</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Spring-Beauty</COMMON> | |
<PRICE>$6.59</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Trillium</COMMON> | |
<PRICE>$3.90</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Wake Robin</COMMON> | |
<PRICE>$3.20</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Violet, Dog-Tooth</COMMON> | |
<PRICE>$9.04</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Trout Lily</COMMON> | |
<PRICE>$6.94</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Adder's-Tongue</COMMON> | |
<PRICE>$9.58</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Anemone</COMMON> | |
<PRICE>$8.86</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Grecian Windflower</COMMON> | |
<PRICE>$9.16</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Bee Balm</COMMON> | |
<PRICE>$4.59</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Bergamot</COMMON> | |
<PRICE>$7.16</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Black-Eyed Susan</COMMON> | |
<PRICE>$9.80</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Buttercup</COMMON> | |
<PRICE>$2.57</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Crowfoot</COMMON> | |
<PRICE>$9.34</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Butterfly Weed</COMMON> | |
<PRICE>$2.78</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cinquefoil</COMMON> | |
<PRICE>$7.06</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Primrose</COMMON> | |
<PRICE>$6.56</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Gentian</COMMON> | |
<PRICE>$7.81</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Blue Gentian</COMMON> | |
<PRICE>$8.56</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Jacob's Ladder</COMMON> | |
<PRICE>$9.26</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Greek Valerian</COMMON> | |
<PRICE>$4.36</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>California Poppy</COMMON> | |
<PRICE>$7.89</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Shooting Star</COMMON> | |
<PRICE>$8.60</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Snakeroot</COMMON> | |
<PRICE>$5.63</PRICE> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cardinal Flower</COMMON> | |
<PRICE>$3.02</PRICE> | |
</PLANT> | |
</NewCATALOG> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<CATALOG> | |
<PLANT> | |
<COMMON>Bloodroot</COMMON> | |
<BOTANICAL>Sanguinaria canadensis</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$2.44</PRICE> | |
<AVAILABILITY>031599</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Columbine</COMMON> | |
<BOTANICAL>Aquilegia canadensis</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$9.37</PRICE> | |
<AVAILABILITY>030699</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Marsh Marigold</COMMON> | |
<BOTANICAL>Caltha palustris</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Sunny</LIGHT> | |
<PRICE>$6.81</PRICE> | |
<AVAILABILITY>051799</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cowslip</COMMON> | |
<BOTANICAL>Caltha palustris</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$9.90</PRICE> | |
<AVAILABILITY>030699</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Dutchman's-Breeches</COMMON> | |
<BOTANICAL>Dicentra cucullaria</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$6.44</PRICE> | |
<AVAILABILITY>012099</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Ginger, Wild</COMMON> | |
<BOTANICAL>Asarum canadense</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$9.03</PRICE> | |
<AVAILABILITY>041899</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Hepatica</COMMON> | |
<BOTANICAL>Hepatica americana</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$4.45</PRICE> | |
<AVAILABILITY>012699</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Liverleaf</COMMON> | |
<BOTANICAL>Hepatica americana</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$3.99</PRICE> | |
<AVAILABILITY>010299</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Jack-In-The-Pulpit</COMMON> | |
<BOTANICAL>Arisaema triphyllum</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$3.23</PRICE> | |
<AVAILABILITY>020199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Mayapple</COMMON> | |
<BOTANICAL>Podophyllum peltatum</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$2.98</PRICE> | |
<AVAILABILITY>060599</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Phlox, Woodland</COMMON> | |
<BOTANICAL>Phlox divaricata</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$2.80</PRICE> | |
<AVAILABILITY>012299</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Phlox, Blue</COMMON> | |
<BOTANICAL>Phlox divaricata</BOTANICAL> | |
<ZONE>3</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$5.59</PRICE> | |
<AVAILABILITY>021699</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Spring-Beauty</COMMON> | |
<BOTANICAL>Claytonia Virginica</BOTANICAL> | |
<ZONE>7</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$6.59</PRICE> | |
<AVAILABILITY>020199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Trillium</COMMON> | |
<BOTANICAL>Trillium grandiflorum</BOTANICAL> | |
<ZONE>5</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$3.90</PRICE> | |
<AVAILABILITY>042999</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Wake Robin</COMMON> | |
<BOTANICAL>Trillium grandiflorum</BOTANICAL> | |
<ZONE>5</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$3.20</PRICE> | |
<AVAILABILITY>022199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Violet, Dog-Tooth</COMMON> | |
<BOTANICAL>Erythronium americanum</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$9.04</PRICE> | |
<AVAILABILITY>020199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Trout Lily</COMMON> | |
<BOTANICAL>Erythronium americanum</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$6.94</PRICE> | |
<AVAILABILITY>032499</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Adder's-Tongue</COMMON> | |
<BOTANICAL>Erythronium americanum</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$9.58</PRICE> | |
<AVAILABILITY>041399</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Anemone</COMMON> | |
<BOTANICAL>Anemone blanda</BOTANICAL> | |
<ZONE>6</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$8.86</PRICE> | |
<AVAILABILITY>122698</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Grecian Windflower</COMMON> | |
<BOTANICAL>Anemone blanda</BOTANICAL> | |
<ZONE>6</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$9.16</PRICE> | |
<AVAILABILITY>071099</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Bee Balm</COMMON> | |
<BOTANICAL>Monarda didyma</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$4.59</PRICE> | |
<AVAILABILITY>050399</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Bergamot</COMMON> | |
<BOTANICAL>Monarda didyma</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$7.16</PRICE> | |
<AVAILABILITY>042799</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Black-Eyed Susan</COMMON> | |
<BOTANICAL>Rudbeckia hirta</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Sunny</LIGHT> | |
<PRICE>$9.80</PRICE> | |
<AVAILABILITY>061899</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Buttercup</COMMON> | |
<BOTANICAL>Ranunculus</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$2.57</PRICE> | |
<AVAILABILITY>061099</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Crowfoot</COMMON> | |
<BOTANICAL>Ranunculus</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$9.34</PRICE> | |
<AVAILABILITY>040399</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Butterfly Weed</COMMON> | |
<BOTANICAL>Asclepias tuberosa</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Sunny</LIGHT> | |
<PRICE>$2.78</PRICE> | |
<AVAILABILITY>063099</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cinquefoil</COMMON> | |
<BOTANICAL>Potentilla</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$7.06</PRICE> | |
<AVAILABILITY>052599</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Primrose</COMMON> | |
<BOTANICAL>Oenothera</BOTANICAL> | |
<ZONE>3 - 5</ZONE> | |
<LIGHT>Sunny</LIGHT> | |
<PRICE>$6.56</PRICE> | |
<AVAILABILITY>013099</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Gentian</COMMON> | |
<BOTANICAL>Gentiana</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$7.81</PRICE> | |
<AVAILABILITY>051899</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Blue Gentian</COMMON> | |
<BOTANICAL>Gentiana</BOTANICAL> | |
<ZONE>4</ZONE> | |
<LIGHT>Sun or Shade</LIGHT> | |
<PRICE>$8.56</PRICE> | |
<AVAILABILITY>050299</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Jacob's Ladder</COMMON> | |
<BOTANICAL>Polemonium caeruleum</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$9.26</PRICE> | |
<AVAILABILITY>022199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Greek Valerian</COMMON> | |
<BOTANICAL>Polemonium caeruleum</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$4.36</PRICE> | |
<AVAILABILITY>071499</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>California Poppy</COMMON> | |
<BOTANICAL>Eschscholzia californica</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Sun</LIGHT> | |
<PRICE>$7.89</PRICE> | |
<AVAILABILITY>032799</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Shooting Star</COMMON> | |
<BOTANICAL>Dodecatheon</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Mostly Shady</LIGHT> | |
<PRICE>$8.60</PRICE> | |
<AVAILABILITY>051399</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Snakeroot</COMMON> | |
<BOTANICAL>Cimicifuga</BOTANICAL> | |
<ZONE>Annual</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$5.63</PRICE> | |
<AVAILABILITY>071199</AVAILABILITY> | |
</PLANT> | |
<PLANT> | |
<COMMON>Cardinal Flower</COMMON> | |
<BOTANICAL>Lobelia cardinalis</BOTANICAL> | |
<ZONE>2</ZONE> | |
<LIGHT>Shade</LIGHT> | |
<PRICE>$3.02</PRICE> | |
<AVAILABILITY>022299</AVAILABILITY> | |
</PLANT> | |
</CATALOG> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment