- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个脚本来读取XML文件,并在某些特定的节点上进行一些编辑,然后将文件写回。
我遇到的问题是输出文件中有一些额外的字符添加到了我未编辑的节点上。
我假设这是一个编码问题。
我脚本中的相关代码是
function getAssigneeID ($assigneeName) {
#param($assigneeName)
#write($assigneeName)
$assigneeID = $nameIDHash[$assigneeName]
if ($assigneeID -eq $null -or $a -eq "") {
return 'Not Found'
} else {
return $assigneeID
}
}
function ValidateAssigneeField ($assignee, $fileContent, $fileURI, $assignees) {
If (($assignee.InnerText.Length -le 2) -or ($assignee.InnerText.Length -ne 6) -or ($assignee.InnerText[1] -ne 'Z')) {
write("`tAssignee " + $assignee.InnerText + " is invalid.") >> $Output_Log_File
#find assignee's ID in nameIDHash
$assigneeID = getAssigneeID -assigneeName $assignee.InnerText
if ($assigneeID -eq 'Not Found' -or $assigneeID -eq $null){
write("`t`tThe ID for the invalid user " + $assignee.InnerText + " is Not Found.") >> $Output_Log_File
} else {
#if the assigneeID is in the list of assignees, remove the name, otherwise replace the name with the ID and save the file.
write("`t`tThe ID for the invalid user " + $assignee.InnerText + " is " + $assigneeID) >> $Output_Log_File
$assigneeIdAlreadyInList = $false
foreach ($user in $assignees){
#write("user = " + $user.InnerText + ", ID = " + $assigneeID)
If ($user.InnerText -eq $assigneeID){
$assigneeIdAlreadyInList = $true
} else {
}
}
#write ($assigneeIdAlreadyInList)
if ($assigneeIdAlreadyInList){
write("`t`t" + $assigneeID + " already exists in the assignee list, removing " + $assignee.InnerText) >> $Output_Log_File
[void]$assignee.ParentNode.RemoveChild($assignee)
} else {
write("`t`tReplacing " + $assignee.InnerText + " with " + $assigneeID + ".") >> $Output_Log_File
$assignee.InnerText = $assigneeID
}
write("`t`tSaving the file " + $fileURI + ".") >> $Output_Log_File
#$fileContent.save($fileURI)
#$file | out-file -Encoding "UTF8" -FilePath $fileURI
#$MyXML | out-file -Encoding "UTF8" -FilePath $fileURI
#$fileContent | out-file -Encoding "UTF8" -FilePath $fileURI
}
} else {
write("`tAssignee " + $assignee.InnerText + " is OK.") >> $Output_Log_File
}
}
$workitemBasePath = "C:\temp\dev\workitems\Dev_ECH\"
$Output_Log_File = "C:\ALM\Reports\Dev_ECH - Correct All Assignees.txt"
$NameIDHash = @{
"Jade West" = "zzzzzz"
"Tonya Killebrew" = "AZCJNZ"}
$today = Get-Date -format s
write($today + " - Running Correct invalid Assignees.ps1.") > $Output_Log_File
$files = Get-ChildItem -Path $workitemBasePath -include workitem.xml -Recurse | % { $_.FullName }
foreach ($file in $files){
write("Evaluating " + $file) >> $Output_Log_File
[xml]$MyXML = Get-Content $file
$assigneeList = $MyXML.SelectNodes('//work-item/field[@id="assignee"]/list/item')
if ($assigneeList.count -eq 0) {
$assigneeList = $MyXML.SelectNodes('//work-item/field[@id="assignee"]')
}
foreach ($assignee in $assigneeList) {
ValidateAssigneeField -assignee $assignee -fileContent $MyXML -fileURI $file -assignees $assigneeList
}
}
$fileContent.save($fileURI)
<field id="description" text-type="text/plain">​Navistar has reported that the transmission remains in Drive when the operator selects a fast sequence from Drive to Reverse to Manual mode. When selecting a similar sequence from Reverse to Drive to Manual mode, the transmission drive as expected.</field>
<?xml version="1.0" encoding="UTF-8"?>
<work-item>
<field id="assignee">Jade West</field>
<field id="author">RZPRRK</field>
<field id="created">2019-08-08 10:41:39.163 -0400</field>
<field id="description" text-type="text/html">Tst</field>
<field id="dueDate">2019-08-05</field>
<field id="nextReviewDate" type="date">2019-08-15</field>
<field id="osNumber" type="string">23457</field>
<field id="osOpenDate" type="date">2019-07-30</field>
<field id="previousStatus">toBeScreened</field>
<field id="priority">2.0</field>
<field id="rational" text-type="text/html" type="text/html">Test</field>
<field id="release" type="enum:release">na</field>
<field id="resolution">duplicate</field>
<field id="resolvedOn">2019-08-08 10:42:22.987 -0400</field>
<field id="severity">normal</field>
<field id="status">inProcess</field>
<field id="title">HWCR - Reject</field>
<field id="type">hardwareChangeRequest</field>
</work-item>
<?xml version="1.0" encoding="UTF-8"?>
<work-item>
<field id="assignee">
<list>
<item>XZM030</item>
</list>
</field>
<field id="author">XZM030</field>
<field id="automatedTestAffected" type="enum:productDocumentAffected">notRequired</field>
<field id="created">2019-06-06 13:59:27.726 -0400</field>
<field id="customerImpact" type="enum:productGenricYesNo">yes</field>
<field id="customerImpactNotes" text-type="text/plain" type="text/html">See description</field>
<field id="cyberSecurityAffected" type="enum:productGenricYesNo">no</field>
<field id="datalinkTechData" type="enum:productDocumentAffected">notRequired</field>
<field id="description" text-type="text/plain">​Navistar has reported that the transmission remains in Drive when the operator selects a fast sequence from Drive to Reverse to Manual mode. When selecting a similar sequence from Reverse to Drive to Manual mode, the transmission drive as expected.</field>
<field id="designReviewComments" text-type="text/plain" type="text/html">​3/4/19-accepted with addtions to test plan</field>
<field id="designReviewRequired" type="enum:productDocumentCompleted">completed</field>
<field id="designedDate" type="date">2019-03-26</field>
<field id="diagAffected" type="enum:productDiagAffected">no</field>
<field id="fmeaRequired" type="enum:productDocumentAffected">notRequired</field>
<field id="functionalSafetyAffected" type="enum:productGenricYesNo">no</field>
<field id="linkedWorkItems">
<list>
<struct>
<item id="role">affected_by</item>
<item id="workItem">COMM-47223</item>
</struct>
</list>
</field>
<field id="priority">4.0</field>
<field id="release" type="enum:release">na</field>
<field id="requirementsAffected" type="enum:productDocumentAffected">notRequired</field>
<field id="rootCauseDescription" text-type="text/plain" type="text/html">​The TCM logic that controls express preselect for the hold postion looks at if forward is attained but not the currently selected postion.  Therefore with a quick transistion from D-R-H the transmission does not have time to actually make a shift to Reverse and there for the forward attined is still true when hold is recieved. </field>
<field id="screenedDate" type="date">2019-03-26</field>
<field id="serviceImpact" type="enum:productGenricYesNo">yes</field>
<field id="serviceImpactNotes" text-type="text/plain" type="text/html">affects OEMs using the non-ATI standard selector interface only. OEMs using the non- ATI basic selector interface are not effected.</field>
<field id="severity">normal</field>
<field id="sharePointID" type="string">2884</field>
<field id="simToolAffected" type="enum:productDocumentAffected">notRequired</field>
<field id="softwareCRIsRequired" type="boolean">true</field>
<field id="solutionDescription" text-type="text/plain" type="text/html">​The TCM logic that controls express preselect for the hold postion needs to look at the selected position and if forward is attined.</field>
<field id="status">na</field>
<field id="synergyCRNumber" type="string">,10516,</field>
<field id="syscrType" type="string">Incident</field>
<field id="techData(Regular)" type="enum:productDocumentAffected">notRequired</field>
<field id="tempStatus" type="string">n/a</field>
<field id="testPlanAffected" type="enum:productDocumentAffected">notRequired</field>
<field id="testRunWhereValidated" type="string">BCD 191 PC</field>
<field id="title">Other: OEM Standard Shift Selector D-to-R-to-Manual Transition Complaint</field>
<field id="type">other</field>
<field id="typeForDependencyOnly" type="enum:otherProductDependencyType">other</field>
<field id="vepsqaAffected" type="enum:vepsAffected">no</field>
</work-item>
最佳答案
没有输入文件,请尝试以下更改:
[xml]$MyXML = Get-Content $file -Raw
$file | Out-File -Encoding "UTF8"
$newfile = ValidateAssigneeField -assignee $assignee -fileContent $MyXML -fileURI $file -assignees $assigneeList
$newfile | Out-File -Encoding "UTF8" -FilePath "DESTINATION"
关于xml - 我的Powershell脚本输出的字符奇怪(编码错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412445/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
为什么在 C# 中添加两个 char 结果是 int 类型? 例如,当我这样做时: var pr = 'R' + 'G' + 'B' + 'Y' + 'P'; pr 变量变为 int 类型。我希望它是
下面的代码可以编译,但 char 类型的行为与 int 类型的行为不同。 特别是 cout ::ikIsX >() ::ikIsX >() ::ikIsX >() using names
我正在寻找一个正则表达式,它可以匹配长度为 1 个或多个字符但不匹配 500 的内容。这将在 Rails 路由文件中使用,特别是用于处理异常。 路线.rb match '/500', to: 'err
对于 C 编程作业,我正在尝试编写几个头文件来检查所谓的“X 编程语言”的语法。我最近才开始,正在编写第一个头文件。这是我编写的代码: #ifndef _DeclarationsChecker_h_
为什么扩展的 ascii 字符(â、é 等)被替换为 字符? 我附上了一张图片...但我正在使用 PHP 从 MySQL 中提取数据,其中一些位置有扩展字符...我使用的是 Arial 字体。 您可以
我有一个与 R 中的断线相关的简单问题。 我正在尝试粘贴,但在获取(字符/数字)之间的断线时遇到问题。请注意,这些值包含在向量中(V1=81,V2=55,V3=25)我已经尝试过这段代码: cat(p
如何将 ANSI 字符 (char) 转换为 Unicode 字符 (wchar_t),反之亦然? 是否有用于此目的的任何跨平台源代码? 最佳答案 是的,在 中你有mbstowcs()和 wcsto
函数 fromCharCode 不适用于国际 ANSI 字符。例如,对于 ID 为 192 到 223 的俄语 ANSI (cp-1251) 字符,它返回特殊字符。如何解决这个问题? 我认为,需要将A
如果不喜欢,我想隐藏 id,但不起作用 SELECT * FROM character, character_actor WHERE character.id NOT LIKE character_a
现在这个程序成功地反转了键盘输入的单词。但是我想在我反转它之前“保存”指针中的单词,所以我可以比较两者,反转的和“原始的”,并检查它们是否是回文。我还没有太多经验,可能会出现比我知道的更多的错误,但我
Memcpy 和 memcmp 函数可以接受指针变量吗? char *p; char* q; memcpy(p,q,10); //will this work? memcmp(p,q,10); //w
恐怕我对一个相当过饱和的主题的细节有疑问,我搜索了很多,但找不到一个明确的答案来解决这个特定的明显-imho-重要的问题: 使用UTF-8将byte[]转换为String时,每个字节(8bit)都变成
我有一个奇怪的问题。我需要从 stat 命令打印输出字符串。 我已经编写了获取一些信息的代码。 import glob import os for file in glob.glob('system1
我正在使用 Java 并具有其值如下所示的字符串, String data = "vale-cx"; data = data.replaceAll("\\-", "\\-\\"); 我正在替换其中的“
String urlParameters = "login=test&password=te&ff"; 我有一个String urlParams,& - 是密码的一部分,如何使其转义,从而不被识别为分
大家好,我只想从此字符串中提取第一个字母: String str = "使 徒 行 傳 16:31 ERV-ZH"; 我只想获取这些字符: 使 徒 行 傳 并且不包括 ERV-ZH 仅数
这个问题已经有答案了: Crash or "segmentation fault" when data is copied/scanned/read to an uninitialized point
所以, 我有一个字符**;它本质上是一个句子,带有指向该句子中每个单词的指针;即 'h''i''\0''w''o''r''l''d''\0''y''a''y''!''\0' 在这种情况下,我希望使用可
这个问题在这里已经有了答案: Using quotation marks inside quotation marks (12 个答案) 关闭 7 年前。 如何打印 " 字符? 我知道打印 % 符号
我是一名优秀的程序员,十分优秀!