Edit

Share via


ConvertTo-Xml

Creates an XML-based representation of an object.

Syntax

Default (Default)

ConvertTo-Xml
    [-Depth <Int32>]
    [-InputObject] <PSObject>
    [-NoTypeInformation]
    [-As <String>]
    [<CommonParameters>]

Description

The ConvertTo-Xml cmdlet creates an XML-based representation of one or more .NET objects. To use this cmdlet, pipe one or more objects to the cmdlet, or use the InputObject parameter to specify the object.

When you pipe multiple objects to ConvertTo-Xml or use the InputObject parameter to submit multiple objects, ConvertTo-Xml returns a single, in-memory XML document that includes representations of all the objects.

This cmdlet is similar to Export-Clixml except that Export-Clixml stores the resulting XML in a Common Language Infrastructure (CLI) file that can be reimported as objects with Import-Clixml. ConvertTo-Xml returns an in-memory representation of an XML document, so you can continue to process it in PowerShell. ConvertTo-Xml doesn't have an option to convert objects to CLI XML.

Examples

Example 1: Convert a date to XML

Get-Date | ConvertTo-Xml

This command converts the current date (a DateTime object) to XML.

Example 2: Convert processes to XML

ConvertTo-Xml -As "Document" -InputObject (Get-Process) -Depth 3

This command converts the process objects that represent all the processes on the computer into an XML document. The objects are expanded to a depth of three levels.

Parameters

-As

Determines the output format. The acceptable values for this parameter are:

  • String - Returns a single string.
  • Stream - Returns an array of strings.
  • Document - Returns an XmlDocument object.

The default value is Document.

Parameter properties

Type:String
Default value:None
Accepted values:Stream, String, Document
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Depth

Specifies how many levels of contained objects are included in the XML representation. The default value is 1.

For example, if the object's properties also contain objects, to save an XML representation of the properties of the contained objects, you must specify a depth of 2.

The default value can be overridden for the object type in the Types.ps1xml files. For more information, see about_Types.ps1xml.

Parameter properties

Type:Int32
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-InputObject

Specifies the object to be converted. Enter a variable that contains the objects, or type a command or expression that gets the objects. You can also pipe objects to ConvertTo-Xml.

Parameter properties

Type:PSObject
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:0
Mandatory:True
Value from pipeline:True
Value from pipeline by property name:False
Value from remaining arguments:False

-NoTypeInformation

Omits the Type attribute from the object nodes.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

PSObject

You can pipe any object to this cmdlet

Outputs

String

When you use the As parameter and set the value to string, this cmdlet returns the XML as a string. When the value is stream, this cmdlet returns an array of strings.

XmlDocument

By default, this cmdlet returns an XML document.