[][src]Struct xmlwriter::XmlWriter

pub struct XmlWriter { /* fields omitted */ }

An XML writer.

Methods

impl XmlWriter[src]

pub fn new(opt: Options) -> Self[src]

Creates a new XmlWriter.

pub fn with_capacity(capacity: usize, opt: Options) -> Self[src]

Creates a new XmlWriter with a specified capacity.

pub fn write_declaration(&mut self)[src]

Writes an XML declaration.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

Panics

  • When called twice.

pub fn write_comment(&mut self, text: &str)[src]

Writes a comment string.

pub fn write_comment_fmt(&mut self, fmt: Arguments)[src]

Writes a formatted comment.

pub fn start_element(&mut self, name: &str)[src]

Starts writing a new element.

This method writes only the <tag-name part.

pub fn write_attribute<V: Display + ?Sized>(&mut self, name: &str, value: &V)[src]

Writes an attribute.

Quotes in the value will be escaped.

Panics

  • When called before start_element().
  • When called after close_element().

Example

use xmlwriter::*;

let mut w = XmlWriter::new(Options::default());
w.start_element("svg");
w.write_attribute("x", "5");
w.write_attribute("y", &5);
assert_eq!(w.end_document(), "<svg x=\"5\" y=\"5\"/>\n");

pub fn write_attribute_fmt(&mut self, name: &str, fmt: Arguments)[src]

Writes a formatted attribute value.

Quotes in the value will be escaped.

Panics

  • When called before start_element().
  • When called after close_element().

Example

use xmlwriter::*;

let mut w = XmlWriter::new(Options::default());
w.start_element("rect");
w.write_attribute_fmt("fill", format_args!("url(#{})", "gradient"));
assert_eq!(w.end_document(), "<rect fill=\"url(#gradient)\"/>\n");

pub fn write_attribute_raw<F>(&mut self, name: &str, f: F) where
    F: FnOnce(&mut Vec<u8>), 
[src]

Writes a raw attribute value.

Closure provides a mutable reference to an internal buffer.

Warning: this method is an escape hatch for cases when you need to write a lot of data very fast.

Panics

  • When called before start_element().
  • When called after close_element().

Example

use xmlwriter::*;

let mut w = XmlWriter::new(Options::default());
w.start_element("path");
w.write_attribute_raw("d", |buf| buf.extend_from_slice(b"M 10 20 L 30 40"));
assert_eq!(w.end_document(), "<path d=\"M 10 20 L 30 40\"/>\n");

pub fn set_preserve_whitespaces(&mut self, preserve: bool)[src]

Sets the preserve whitespaces flag.

  • If set, text nodes will be written as is.
  • If not set, text nodes will be indented.

Can be set at any moment.

Example

use xmlwriter::*;

let mut w = XmlWriter::new(Options::default());
w.start_element("html");
w.start_element("p");
w.write_text("text");
w.end_element();
w.start_element("p");
w.set_preserve_whitespaces(true);
w.write_text("text");
w.end_element();
w.set_preserve_whitespaces(false);
assert_eq!(w.end_document(),
"<html>
    <p>
        text
    </p>
    <p>text</p>
</html>
");

pub fn write_text(&mut self, text: &str)[src]

Writes a text node.

See write_text_fmt() for details.

pub fn write_text_fmt(&mut self, fmt: Arguments)[src]

Writes a formatted text node.

< will be escaped.

Panics

  • When called not after start_element().

pub fn end_element(&mut self)[src]

Closes an open element.

pub fn end_document(self) -> String[src]

Closes all open elements and returns an internal XML buffer.

Example

use xmlwriter::*;

let mut w = XmlWriter::new(Options::default());
w.start_element("svg");
w.start_element("g");
w.start_element("rect");
assert_eq!(w.end_document(),
"<svg>
    <g>
        <rect/>
    </g>
</svg>
");

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]