2014-11-13 26 views
0

我已經編寫了一個腳本來讀取PowerShell 2.0中的XML ......簡單沒問題。不過,我遇到的問題是客戶端發送2種不同格式的相同XML(見下文)。當我最初開始開發我只有在格式1文件中,以便我的PowerShell代碼看起來像:在PowerShell中讀取不同格式的XML文件

[xml]$private:xmlFile = Get-Content $File 
    $private:Request = $xmlFile.Request 
    $Request.Action # returns Initialization 

現在,因爲它需要我用$ Request.Action.InnerText或我的代碼不格式2工作$ Request.Action。'#ntext'

任何人都知道一個簡單的方法能夠處理這兩種XML格式?

格式1(在根定義的命名空間):

<temp:Request xmlns:ext="http://..."> 
     <ext:FileInformation> 
      <ext:FileDetailsMetadata> 
       <core:TransmissionID>TransmissionID0</core:TransmissionID> 
       <core:SenderID>SenderID</core:SenderID> 
       <core:ReceiverID>ReceiverID</core:ReceiverID> 
      </ext:FileDetailsMetadata> 
     <ext:Action>Initialization</ext:Action> 
     </ext:FileInformation> 
    </temp:Request> 

格式2(在每個節點定義的命名空間):

<temp:Request xmlns:temp="http://..."> 
     <ext:FileInformation xmlns:ext="http://..."> 
      <ext:FileDetailsMetadata> 
       <ns2:TransmissionID xmlns:ns2="http://...">TransmissionId</ns2:TransmissionID> 
       <ns2:SenderID xmlns:ns2="...">SenderID</ns2:SenderID> 
       <core:ReceiverID xmlns:core="http://...">930989307</core:ReceiverID> 
      </ext:FileDetailsMetadata> 
      <ns3:Action xmlns:ns3="http://...">Initialization</ns3:Action>   </ext:FileInformation> 
</temp:Request> 

回答

0

我結束了創建一個函數來處理的各種方式,該xml節點數據可以被解析。

謝謝