我有一個令人費解的情況,用我正在訪問的XML中的CDATA字符串。如何使用PowerShell在XML文件中獲取CDATA中的值?
我訪問XML API並在PowerShell中收集CDATA字符串。它像這樣返回:
aggressorAllianceID: 99006227 aggressorCorpID: 244898283 aggressorID: 1283793762 armorValue: 1.0 hullValue: 1.0 moonID: 40043321 shieldValue: 0.5166110755741394 solarSystemID: 30000686 typeID: 20060
正如你所看到的那樣有多行。我想收集這些變量,例如$aggressorAllianceID = 99006227
。
完整的XML是在這裏:
<eveapi version="2">
<currentTime>2017-07-19 09:08:18</currentTime>
<result>
<rowset name="notifications" key="notificationID" columns="notificationID">
<row notificationID="644139237">
<![CDATA[
aggressorAllianceID: 99006227 aggressorCorpID: 244898283 aggressorID: 1283793762 armorValue: 1.0 hullValue: 1.0 moonID: 40043321 shieldValue: 0.5166110755741394 solarSystemID: 30000686 typeID: 20060
]]>
</row>
</rowset>
</result>
<cachedUntil>2027-07-17 09:08:18</cachedUntil>
</eveapi>
我已經tryed解析CDATA字符串分割命令,但我沒有真正得到awhere?
任何人都可以提供一個他們如何訪問和變量這個CDATA信息的例子嗎?
這不是一個好主意,*所有*讓一個程序用任意的,不可預知的名字創建變量。散列表的方法是要走的路。 – Tomalak
@Tomalak在我的代碼中,我使用'New-Variable'和'Get-Variable'結合來存儲和檢索基於唯一ID的可預測數據。完全承認數據存儲是我的一個薄弱環節,並且會在未來重構時嘗試使用Ansgar的方法。這種方法對於OP的數據如此糟糕以至於可能會導致進一步的問題帶來危害/引發? – gms0ulman
那麼,任何自我修改的代碼(以及在其運行的相同範圍內創建變量的代碼就是這樣)是可用於攻擊的(SQL注入或跨站點腳本是最突出的示例)或運行時的隨機破壞因爲現有變量很容易被覆蓋。這將導致意外的程序行爲。保持程序邏輯清潔並防止注入漏洞。 – Tomalak