我有一個XML文件,它有大約10,000行,我想將一些數據提取到CSV文件。從XML中提取屬性和內部文本
我遇到的問題是提取id
屬性和聯盟名稱標記的內部文本。如果任何人都可以闡明爲什麼ID不顯示以及如何獲取無損文本,這將是非常有幫助的。
重複樣本數據
<players>
<towns>
<town>
<player>
<playername id="1">MyName</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="2">Tonka</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="18">DaVS</alliancename>
<alliancetag>DaVS</alliancetag>
<alliancetax>0.01</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="3">Sinner</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="1">Harmless?</alliancename>
<alliancetag>TH</alliancetag>
<alliancetax>0.00</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="3">Sinner</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="1">Harmless?</alliancename>
<alliancetag>TH</alliancetag>
<alliancetax>0.00</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="3">Sinner</playername>
<playerrace>Human</playerrace>
<playeralliance>
<alliancename id="1">Harmless?</alliancename>
<alliancetag>TH</alliancetag>
<alliancetax>0.00</alliancetax>
</playeralliance>
</player>
</town>
<town>
<player>
<playername id="10">Kumomoto</playername>
<playerrace>Elf</playerrace>
<playeralliance>
<alliancename id="1">Harmless?</alliancename>
<alliancetag>TH</alliancetag>
<alliancetax>0.00</alliancetax>
</playeralliance>
</player>
</town>
</towns>
</players>
目前代碼
$xml.selectNodes('//playeralliance') |
select alliancename.id, allianceticker, alliancetaxrate
輸出
PS C:\Users\jon> $xml.selectNodes('//playeralliance') | select alliancename.id, alliancename, alliancetag, alliancetax
alliancename.id alliancename alliancetag alliancetax
--------------- ------------ ----------- -----------
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename DaVS 0.01
alliancename TH 0.00
alliancename TH 0.00
alliancename TH 0.00
alliancename TH 0.00
過去的代碼示例
[xml]$xml = Get-Content 'C:\Users\jhold\Desktop\Illyriad Data\sample.xml';
$xml.towns.town.player;
foreach($item in $xml.playeralliance)
{
$allianceName = $item
#$allianceID = $item.id
#$allianceTicker = $item.allianceticker
#$allianceTax = $item.alliancetax
Write-host "Name: " $allianceName
#Write-host "ID: " $allianceID
#Write-host "Ticker: " $allianceTicker
#Write-host "Tax: " $allianceTax
}
它不是很好,即使更新了XML數據形成 –
。我試圖不發佈一堆相同的數據。 –
16:00開始https://www.youtube.com/watch?v=m8k-oqBlntY –