xml3

command
v0.0.0-...-0c35626 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2021 License: GPL-3.0 Imports: 3 Imported by: 0

README

Source file src/encoding/xml/example_test.go

https://golang.org/src/encoding/xml/example_test.go

// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file.

package xml_test

import ( "encoding/xml" "fmt" "os" )

func ExampleMarshalIndent() { type Address struct { City, State string } type Person struct { XMLName xml.Name xml:"person" Id int xml:"id,attr" FirstName string xml:"name>first" LastName string xml:"name>last" Age int xml:"age" Height float32 xml:"height,omitempty" Married bool Address Comment string xml:",comment" }

v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42}
v.Comment = " Need more details. "
v.Address = Address{"Hanga Roa", "Easter Island"}

output, err := xml.MarshalIndent(v, "  ", "    ")
if err != nil {
	fmt.Printf("error: %v\n", err)
}

os.Stdout.Write(output)
// Output:
//   <person id="13">
//       <name>
//           <first>John</first>
//           <last>Doe</last>
//       </name>
//       <age>42</age>
//       <Married>false</Married>
//       <City>Hanga Roa</City>
//       <State>Easter Island</State>
//       <!-- Need more details. -->
//   </person>

}

func ExampleEncoder() { type Address struct { City, State string } type Person struct { XMLName xml.Name xml:"person" Id int xml:"id,attr" FirstName string xml:"name>first" LastName string xml:"name>last" Age int xml:"age" Height float32 xml:"height,omitempty" Married bool Address Comment string xml:",comment" }

v := &Person{Id: 13, FirstName: "John", LastName: "Doe", Age: 42}
v.Comment = " Need more details. "
v.Address = Address{"Hanga Roa", "Easter Island"}

enc := xml.NewEncoder(os.Stdout)
enc.Indent("  ", "    ")
if err := enc.Encode(v); err != nil {
	fmt.Printf("error: %v\n", err)
}

// Output:
//   <person id="13">
//       <name>
//           <first>John</first>
//           <last>Doe</last>
//       </name>
//       <age>42</age>
//       <Married>false</Married>
//       <City>Hanga Roa</City>
//       <State>Easter Island</State>
//       <!-- Need more details. -->
//   </person>

}

// This example demonstrates unmarshaling an XML excerpt into a value with // some preset fields. Note that the Phone field isn't modified and that // the XML element is ignored. Also, the Groups field is assigned // considering the element path provided in its tag. func ExampleUnmarshal() { type Email struct { Where string xml:"where,attr" Addr string } type Address struct { City, State string } type Result struct { XMLName xml.Name xml:"Person" Name string xml:"FullName" Phone string Email []Email Groups []string xml:"Group>Value" Address } v := Result{Name: "none", Phone: "none"}

data := `
	<Person>
		<FullName>Grace R. Emlin</FullName>
		<Company>Example Inc.</Company>
		<Email where="home">
			<Addr>gre@example.com</Addr>
		</Email>
		<Email where='work'>
			<Addr>gre@work.com</Addr>
		</Email>
		<Group>
			<Value>Friends</Value>
			<Value>Squash</Value>
		</Group>
		<City>Hanga Roa</City>
		<State>Easter Island</State>
	</Person>
`
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
	fmt.Printf("error: %v", err)
	return
}
fmt.Printf("XMLName: %#v\n", v.XMLName)
fmt.Printf("Name: %q\n", v.Name)
fmt.Printf("Phone: %q\n", v.Phone)
fmt.Printf("Email: %v\n", v.Email)
fmt.Printf("Groups: %v\n", v.Groups)
fmt.Printf("Address: %v\n", v.Address)
// Output:
// XMLName: xml.Name{Space:"", Local:"Person"}
// Name: "Grace R. Emlin"
// Phone: "none"
// Email: [{home gre@example.com} {work gre@work.com}]
// Groups: [Friends Squash]
// Address: {Hanga Roa Easter Island}

}

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL