使用 XPath 在 XML 中選擇屬性

Rohan Timalsina 2023年1月30日 2022年5月26日
  1. 在 PowerShell 中使用 Select-Xml Cmdlet 選擇 XML 中的屬性
  2. 在 PowerShell 中使用 SelectNodes 方法選擇 XML 中的屬性
  3. 在 PowerShell 中使用 Get-Content Cmdlet 選擇 XML 中的屬性
使用 XPath 在 XML 中選擇屬性

XML 代表可擴充套件標記語言。XML 檔案是具有自定義標籤的純文字檔案,用於定義文件的結構。

它主要用於儲存和共享結構化資訊。XML 檔案的內容與 HTML 檔案類似。

本教程將介紹在 PowerShell 中使用 XPath 在 XML 中選擇屬性的不同方法。

在 PowerShell 中使用 Select-Xml Cmdlet 選擇 XML 中的屬性

Select-Xml cmdlet 允許你使用 XPath 在 XML 字串或文件中查詢文字。

這是一個 XML 檔案的簡單示例。

<website>
<site name="DelftStack">
<content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</content>
</site>
<site name="DelftStack">
<content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</content>
</site>
</website>

以下命令在 C:\Users\rhntm 目錄中的 new.xml 檔案中搜尋 XPath 查詢 topic

Select-Xml -Path C:\Users\rhntm\new.xml -XPath "//topic" | Select-Object -ExpandProperty Node

輸出:

#text
-----
PowerShell Howtos
Linux Howtos

-Path 引數指定要搜尋的 XML 檔案的路徑和檔名。

-XPath 引數指定要搜尋的 XPath 查詢。查詢文字區分大小寫。

在 PowerShell 中使用 SelectNodes 方法選擇 XML 中的屬性

SelectNodes() 方法選擇與 XML 檔案中的 XPath 表示式匹配的節點列表。

以下示例從 new.xml 檔案中選擇節點 content

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content')

輸出:

topic             article
-----             -------
PowerShell Howtos How to convert XML into CSV?
Linux Howtos      Delete Files Recursively in Linux

[xml] 將變數轉換為 XML 物件。Get-Content cmdlet 獲取 C:\Users\rhntm\new.xml 的內容並將其儲存在 $xml 變數中。

要選擇特定屬性,你可以使用 Select-Object cmdlet。例如,以下命令僅從 new.xml 檔案中選擇 article

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content') | Select-Object article

輸出:

article
-------
How to convert XML into CSV?
Delete Files Recursively in Linux

在 PowerShell 中使用 Get-Content Cmdlet 選擇 XML 中的屬性

正如你在上面看到的,Get-Content cmdlet 獲取 XML 檔案的內容。你可以將內容儲存在變數中並將其轉換為 XML 物件。

以下示例顯示瞭如何使用 Get-Content 並選擇 XML 檔案中的屬性。

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.website.site.content.topic

輸出:

PowerShell Howtos
Linux Howtos

如果你想要 XML 檔案中的文字值,這是一種簡單的使用方法。我們希望這可以幫助你瞭解如何在 PowerShell 中選擇 XML 中的屬性。

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell XML