Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 清理XML文件时浪费显示和打印内容的时间_Sql_Xml_Powershell - Fatal编程技术网

Sql 清理XML文件时浪费显示和打印内容的时间

Sql 清理XML文件时浪费显示和打印内容的时间,sql,xml,powershell,Sql,Xml,Powershell,我正在尝试创建一个PowerShell例程来自动清理XML文件。我已经成功地创建了我的例程,并且我能够用不同的函数和脚本清除文件。但我想在每次有新的XML文件时启动PowerShell例程。所以我决定添加一个系统来处理目录中的每个文件 现在,我正在调用例程来清理PowerShell脚本,即使我不使用Write Host,它也会在启动例程时显示行,并且我会浪费大量时间来清理XML文件 这是我的密码: param([string]$sourceDirectory,[string]$targetDir

我正在尝试创建一个PowerShell例程来自动清理XML文件。我已经成功地创建了我的例程,并且我能够用不同的函数和脚本清除文件。但我想在每次有新的XML文件时启动PowerShell例程。所以我决定添加一个系统来处理目录中的每个文件

现在,我正在调用例程来清理PowerShell脚本,即使我不使用
Write Host
,它也会在启动例程时显示行,并且我会浪费大量时间来清理XML文件

这是我的密码:

param([string]$sourceDirectory,[string]$targetDirectory,[string]$XSDFileName,[string]$dataSourceName,[string]$databaseName)
清楚的
函数clearLocalVariables{
#此函数用于清除局部变量
}
函数createSqlNodeList{
参数([string]$dataSourceName,[string]$databaseName)
#此函数用于从SQL数据库在我的XML文件中创建可用和允许的节点列表。
}
以下功能用于检查我的节点,这是打印和写入主机在多次启动时出现的位置:

函数isNodeNameValid{
参数([字符串]$testedNodeName)
#此函数用于返回nodeAnalysis函数的值。
#它将根据以下事实选择要分析的节点列表:
#它是XML方面或数据方面的节点。
#-$testedNodeName是表示所分析的XML节点的字符串。
#如果节点名称是长度为5的字符串,则以a开头,由
#4位('AXXXX'),则为数据。
如果($testedNodeName.Length-等式5)-和($testedNodeName.Substring(0,1)-等式“A”)-和($testedNodeName.Substring(1,4)-匹配“^[-]?[0-9.]+$”){
返回nodeAnalysis-nodesList$nodesql-testedNodeName$testedNodeName
#否则,它位于XML方面的列表中。
}否则{
返回nodeAnalysis-nodesList$nodesXML-testedNodeName$testedNodeName
}
}
功能节点分析{
参数($nodesList,[string]$testedNodeName)
#此函数用于分析给定的每个节点名称。
#它将分析的名称的名称与参数中给定的数组中的每个节点进行比较。
#-$nodesList是相应的数组,具体取决于isNodeNameValid()方法。
#-$testedNodeName是表示所分析的XML节点的字符串。
#我们将节点数组的每个节点与testedNodeName进行比较。如果testedNodeName在该数组中,则该方法返回1。
foreach($nodesList中的nodeName){
if($testedNodeName-eq$nodeName){
返回1
}
}
#如果该节点对应于列表中的任何节点,则该方法返回0。
返回0
}
#--XML节点递归清理方法--#
函数cleanXMLContent{
参数($XMLDoc,[int]$endoflifef,[int]$boucle)
#这是我在显示和效率方面遇到问题的功能:
而($endOfFile-ne 1){
如果($F-等式1){
如果($XMLDoc.Name-eq“#文档”){
$endOfFile=1
}
如果($XMLDoc.NextSibling){
$XMLDoc=$XMLDoc.NextSibling
$F=0
}否则{
$XMLDoc=$XMLDoc.ParentNode
$F=1
}
}否则{
if(!(isNodeName-testedNodeName$XMLDoc.Name)){
if($XMLDoc.PreviousSibling){
$nodeNameToDelete=$XMLDoc.Name
$siblingNodeName=$XMLDoc.PreviousSibling.Name
$XMLDoc=$XMLDoc.ParentNode
$XMLDoc.RemoveChild($XMLDoc.SelectSingleNode($nodeNameToDelete))
$XMLDoc=$XMLDoc.SelectSingleNode($siblingNodeName)
}否则{
$nodeNameToDelete=$XMLDoc.Name
$XMLDoc=$XMLDoc.ParentNode
$XMLDoc.RemoveChild($XMLDoc.SelectSingleNode($nodeNameToDelete))
}
}否则{
if($XMLDoc.HasChildNodes){
$XMLDoc=$XMLDoc.FirstChild
$F=0
}否则{
如果($XMLDoc.NextSibling){
$XMLDoc=$XMLDoc.NextSibling
$F=0
}否则{
if($XMLDoc.ParentNode){
$XMLDoc=$XMLDoc.ParentNode
如果($XMLDoc.NextSibling){
$F=1
}否则{
$XMLDoc=$XMLDoc.ParentNode
$F=1
}
}
}
}
}
}
}
写入主机“-清理XML节点正常”-ForegroundColor绿色
}
函数createXSDSchema{
参数([string]$XSDFileName)
#此函数用于创建XSD对应文件
}
函数清理文件{
参数([string]$fileName,[string]$source,[string]$target,[string]$XSDFileName,[string]$dataSourceName,[string]$databaseName)
#--正在打开XML文件--#
#XML文档迭代路径的创建
$date=获取日期
[string]$stringDate=($date.Year*10000+$date.Month*100+$date.Day)*1000000+($date.Hour*10000+$date.Minute*100+$date.Second)
$date=$stringDate.substring(0,8)+“”+$stringDate.substring(8,6)
#确定源文件和目标文件的路径。
$XMLDocPath=$source+$fileName
$XMLFutureFileNamePreWork=$fileName.Substring(0,$fileName.Length-4)
$XMLFuturePath=$target+$XMLFutureFileNamePreWork+“已清理”##"+$date
#XML文档的创建
$XMLDoc=New Object System.Xml.XmlDocument
$XMLFile=解析路径($XMLDocPath)
#XM的加载
[void]$RemovedNode.ParentNode.RemoveChild($RemovedNode)
$RemovedNode.ParentNode.RemoveChild($RemovedNode)