как вывести xsl: сообщение в powershell - PullRequest
0 голосов
/ 30 января 2020

Я создал скрипт (на основе кода других людей) для запуска XSLT-преобразования через powershell

function TransformXML{
param ($xml, $xsl, $argsList, $output)
    $xslt_settings = New-Object System.Xml.Xsl.XsltSettings;
    $XmlUrlResolver = New-Object System.Xml.XmlUrlResolver;
    $xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
    $xslt.Load($xsl,$xslt_settings,$XmlUrlResolver);        
    $XmlWriter = [System.Xml.XmlWriter]::Create($output)        
    $xslt.Transform($xml,$argsList, $XmlWriter)
}

Преобразование работает, но я не могу понять, как заставить его выводить xsl: message

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:message>hello</xsl:message></xsl:stylesheet>

Я нашел "https://docs.microsoft.com/en-us/dotnet/api/system.xml.xsl.xsltmessageencounteredeventargs?view=netframework-4.8", но не знаю, как реализовать это в powershell.

У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 30 января 2020

Я думаю, вы можете использовать Register-ObjectEvent (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/register-objectevent?view=powershell-7):

Register-ObjectEvent -InputObject $argsList -EventName "XsltMessageEncountered" -Action { Write-Host ("Message: " + $EventArgs.Message) };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...