使用 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