1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
| function Convertto-HTML
{
[CmdletBinding(DefaultParameterSetName='Page', HelpUri='http://go.microsoft.com/fwlink/?LinkID=113290', RemotingCapability='None')]
param(
[Parameter(ValueFromPipeline=$true)]
[psobject]
${InputObject},
[Parameter(Position=0)]
[System.Object[]]
${Property},
[Parameter(ParameterSetName='Page', Position=3)]
[Parameter(ParameterSetName='Condition')]
[string[]]
${Body},
[Parameter(ParameterSetName='Page', Position=1)]
[Parameter(ParameterSetName='Condition')]
[string[]]
${Head},
[Parameter(ParameterSetName='Page', Position=2)]
[Parameter(ParameterSetName='Condition')]
[ValidateNotNullOrEmpty()]
[string]
${Title},
[Parameter(ParameterSetName='Fragment')]
[Parameter(ParameterSetName='Page')]
[ValidateNotNullOrEmpty()]
[ValidateSet('Table','List')]
[string]
${As},
[Parameter(ParameterSetName='Condition')]
[Parameter(ParameterSetName='Page')]
[Alias('cu','uri')]
[ValidateNotNullOrEmpty()]
[uri]
${CssUri},
[Parameter(ParameterSetName='Condition')]
[ValidateNotNullOrEmpty()]
[string]
${ColoneName},
[Parameter(ParameterSetName='Condition')]
[ValidateNotNullOrEmpty()]
${Condition},
[Parameter(ParameterSetName='Condition')]
[ValidateSet('Row','Cell')]
${Action} = 'Cell',
[Parameter(ParameterSetName='Fragment')]
[ValidateNotNullOrEmpty()]
[switch]
${Fragment},
[ValidateNotNullOrEmpty()]
[string[]]
${PostContent},
[ValidateNotNullOrEmpty()]
[string[]]
${PreContent})
begin
{
try {
$outBuffer = $null
if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer))
{
$PSBoundParameters['OutBuffer'] = 1
}
$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand('Microsoft.PowerShell.Utility\ConvertTo-Html', [System.Management.Automation.CommandTypes]::Cmdlet)
if($PSCmdlet.ParameterSetName -eq 'condition')
{
$null = $PSBoundParameters.Remove('ColoneName')
$null = $PSBoundParameters.Remove('Condition')
$null = $PSBoundParameters.Remove('Action')
$__htmldata__ = ''
if($Action -eq 'Cell')
{
$buildcond=$condition.ToString() -replace "[}]\s*,\s*[{]",'} {' -replace '"([^"]+)"',"`$i.Style.cssText = ""`$1"""
}
else
{
$buildcond=$condition.ToString() -replace "[}]\s*,\s*[{]",'} {' -replace '"([^"]+)"',"`$i.parentElement.Style.cssText = ""`$1"""
}
$switch = @"
switch(`$i.innertext)
{
$buildcond
}
"@
$scriptCmd = {& $wrappedCmd @PSBoundParameters | Microsoft.PowerShell.Utility\Out-String | Microsoft.PowerShell.Utility\Tee-Object -Variable __htmldata__ | Microsoft.PowerShell.Core\Out-Null }
}
else
{
$scriptCmd = {& $wrappedCmd @PSBoundParameters }
}
$steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
$steppablePipeline.Begin($PSCmdlet)
} catch {
throw
}
}
process
{
try {
$steppablePipeline.Process($_)
} catch {
throw
}
}
end
{
try {
$steppablePipeline.End()
if($PSCmdlet.ParameterSetName -eq 'condition')
{
$htmlfile = Microsoft.PowerShell.Utility\New-Object -ComObject HTMLFILE
$htmlfile.IHTMLDocument2_write($__htmldata__)
$index=$htmlfile.getElementsByTagName('th') | Microsoft.PowerShell.Core\Where-Object -FilterScript {$_.innertext -eq $coloneName}
foreach($i in $($htmlfile.getElementsByTagName('td') | Microsoft.PowerShell.Core\Where-Object -FilterScript {$_.cellindex -eq $index.cellIndex})) {
Microsoft.PowerShell.Utility\Invoke-Expression -Command $switch
}
$html = $htmlfile.documentElement.outerHTML
$html
$htmlfile.close()
}
} catch {
throw
}
}
} |
Partager