我當前的代碼,選擇XML中的某些屬性似乎不工作:如何分別輸出子元素,而不是一個空格分隔的字符串?
[xml]$xml = Get-Content 'C:\Makro-Test\quandata.xml'
$xml.QUANDATASET.GROUPDATA.GROUP.SAMPLELISTDATA.SAMPLE | foreach {
$_.id + ":" + $_.name + ":" + $_.COMPOUND.id + ":" + $_.COMPOUND.name +
":" + $_.COMPOUND.PEAK.analconc
}
它輸出:
1:Aminoacids_Routine_2016_05_30_002:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23:Leu Iso Thre Val Lys Met Phen Try His Gly Ala Ser Arg Cys Tyr Pro Glu Glut Asp Aspa Tau Orn Cit:0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 2:Aminoacids_Routine_2016_05_30_003:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23:Leu Iso Thre Val Lys Met Phen Try His Gly Ala Ser Arg Cys Tyr Pro Glu Glut Asp Aspa Tau Orn Cit:0.0000000000 0.2336617286 0.2147717292 0.2252815136 0.2299108827 0.2395318825 0.0000000000 0.0000000000 0.0000000000 0.2074479299 0.0000000000 0.0000000000
但我所要的輸出看起來像:
1;Aminoacids_Routine_2016_05_30_002;1;Leu;0.0000000000 2;Aminoacids_Routine_2016_05_30_002;2;Iso;0.0000000000 ... 1;Aminoacids_Routine_2016_05_30_003;1;Leu;0.0000000000 2;Aminoacids_Routine_2016_05_30_003;2;Iso;0.2336617286 ...
XML文件:
<?xml version="1.0"?>
<QUANDATASET>
<XMLFILE>
<DATASET>
<GROUPDATA>
<GROUP>
<METHODDATA/>
<SAMPLELISTDATA>
<SAMPLE id="1" groupid="1" name="Routine_2016_05_30_002">
<COMPOUND id="1" sampleid="1" groupid="1" name="Leu">
<PEAK foundscan="0" analconc="0.023423456">
<ISPEAK/>
</PEAK>
</COMPOUND>
<COMPOUND id="2" sampleid="1" groupid="1" name="Iso">
<PEAK foundscan="0" analconc="0.123456789">
<ISPEAK/>
</PEAK>
</COMPOUND>
<COMPOUND id="3" sampleid="1" groupid="1" name="Thre">
...
...
...
<SAMPLE id="2" groupid="1" name="Routine_2016_05_30_003">
<COMPOUND id="1" sampleid="2" groupid="1" name="Leu">
...
...
...
感謝這個真正有用的答案和解釋!這正是我正在尋找的東西,並且我還學到了一些東西。謝謝 – Benhur262
當數組類型被強制轉換爲一個字符串時,元素不會被空格連接,而是被'$ OFS':'$ OFS ='not_space'; [string](1..3)'連接。 – PetSerAl
很高興知道。準確地說:除非您更改$ OFS的默認值,即$ null,否則元素將由空格字符連接。 – wOxxOm