Score:0

อัปเดตส่วนชื่อซ้ำ XML ด้วย Powershell

ธง in

เมื่อใช้ Powershell ฉันต้องการอัปเดตสถานะที่เข้ากันได้ของ Outlook เป็น True

<default>
  <application>Excel.exe</application>
  <compatible>True</compatible>

  <application>Outlook.exe</application>
  <compatible>False</compatible>

  <application>Word.exe</application>
  <compatible>False</compatible>
</default>

โพสต์นี้แสดงวิธีการแก้ไขเอกสารหากมีอินสแตนซ์ 'default.application' เพียงรายการเดียว แต่ไฟล์ที่ฉันใช้งานมีหลายส่วนที่ชื่อแอปพลิเคชันในระดับนั้น.

$doc = [xml](รับเนื้อหา ./test.xml)

ผลลัพธ์ของ $doc.default.compatible เป็น
จริง
เท็จ
เท็จ

ฉันจะแก้ไขเฉพาะค่ากลาง (outlook.exe) เป็น True โดยใช้ Powershell ได้อย่างไร

Davidw avatar
in flag
เมื่อฉันเรียกใช้ `$doc.default.application` ฉันได้รับชื่อแอปพลิเคชัน `$doc.default.compatible` ให้ฉัน `จริงเท็จ False`
in flag
ขออภัย โพสต์ของฉันผิด $doc.default.compatible ฉันได้อัปเดตโพสต์แล้ว
Score:0
ธง cn

เนื่องจากคุณต้องการเปลี่ยนโหนดที่เข้ากันได้หลังจากโหนด Outlook ฉันจึงนำไปใช้เพื่อตรวจสอบว่าเป็นค่าก่อนหน้าโดยใช้วิธี PreviousSibling ก่อนเปลี่ยนค่าเป็น True

อัปเดตรหัส:

$docs = [xml](รับเนื้อหา ./test.xml)

$doc = $docs.SelectNodes('/default/compatible') 

foreach ($d ใน $doc){
    if($d.PreviousSibling.OuterXml -eq "<application>Outlook.exe</application>"){
        $d.'#text' = "จริง"
    }
}

$docs.Save($PSScriptRoot + "\test.xml")

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา