У меня есть XML-файл, содержащий около 10 000 строк, которые я хотел бы извлечь в CSV-файл.Извлечение атрибутов и внутреннего текста из XML
У меня возникла проблема с извлечением атрибута 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
Past Пример кода
[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
}
это AINT даже хорошо сформированы –
Обновленный XML-данных. Я пытался не публиковать кучу тех же данных. –
, начинающийся в 16:00 https://www.youtube.com/watch?v=m8k-oqBlntY –