如何创建10个XML文件副本,每个副本具有不同的TD标记-PowerShell脚本值

ki1q1bka  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(200)

我刚刚开始学习PowerShell(字面意思--只有一周,完全是从网上的教程和资料中学到的:),所以不要对我苛刻。
我很感激你的帮助和如何去做,因为我被困在这一点上了..所以我有这个模板文件,我创建了10个副本,但我不知道如何更改这两个TD标签值。每个副本中的标题和艺术家的名称都不同。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <tr>
        <td>.</td>
        <td>.</td>
      </tr>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

这就是我所做的,但我希望得到一些帮助/建议/解释,以便采取正确的进一步步骤。

[xml]$File= get-content "\MyXMLFile.xml"
1..10 |% { Copy-Item "\MyXMLFile.xml" "MyXMLFile$_.xml"}

$copiedFiles =@(Get-ChildItem -Path "XmlFileFolder" | % Name)

$exampleNode = $File.SelectNodes("//td[1]")

$TitleNodeArray = @('aa', 'bb', 'cc', etc..) #but I have no idea how to go on from there ..
rfbsl7qr

rfbsl7qr1#

尝尝这个。

using assembly System 
using assembly System.Linq
using assembly System.Xml.Linq 

$inputFilename = "c:\temp\test.xml"

$xDoc = [System.Xml.Linq.XDocument]::Load($inputFilename)
$tds = $xDoc.Descendants("td").Foreach([System.Xml.Linq.XElement])
$td0 = $tds[0]
$td1 = $tds[1]
Write-Host $xDoc
$newWords1 = @("abc1","def1","ghi1","jkl1","mno1","pqr1","stu1","vwx1","yz11","2341")
$newWords2 = @("abc2","def2","ghi2","jkl2","mno2","pqr2","stu2","vwx2","yz12","2342")

for($i = 0; $i -lt 10; $i++)
{
Write-Host $i $newWords1[$i]
   $td0.SetValue($newWords1[$i])
   $td1.SetValue($newWords2[$i])

   $xDoc.Save("c:\temp\testoutput" + $i + ".xml")
}
3ks5zfa0

3ks5zfa02#

嗯,我不太使用XML,但我知道单向使用Select-Xml

(Select-Xml -Xml $File -XPath '//tr/td')[1].Node."#text" = 'title'

其中[1]是索引节点,#text是值/文本本身。

相关问题