[玩转系统] Select-Xml (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:04:00 浏览:14 分类:玩电脑
Select-Xml (Microsoft.PowerShell.Utility)
Select-Xml
模块 :Microsoft.PowerShell.Utility查找 XML 字符串或文档中的文本。
句法
Select-Xml
[-XPath] <string>
[-Xml] <XmlNode[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Select-Xml
[-XPath] <string>
[-Path] <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Select-Xml
[-XPath] <string>
-LiteralPath <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Select-Xml
[-XPath] <string>
-Content <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
描述
Select-Xml
cmdlet 允许您使用 XPath 查询来搜索 XML 字符串和文档中的文本。输入 XPath 查询,并使用 Content、Path 或 Xml 参数指定要搜索的 XML。
示例
示例 1:选择 AliasProperty 节点
此示例获取 Types.ps1xml
中的别名属性。有关此文件的信息,请参阅 about_Types.ps1xml。
第一个命令将 Types.ps1xml
文件的路径保存在 $Path
变量中。
第二个命令将 XML 路径保存到 $XPath
变量中的 AliasProperty 节点。
Select-Xml
cmdlet 获取由 Types.ps1xml
文件中的 XPath 语句标识的 AliasProperty 节点。该命令使用管道运算符 (|
) 将 AliasProperty 节点发送到 Select-Object
cmdlet。 ExpandProperty 参数扩展 Node 对象并返回其 Name 和 ReferencedMemberName 属性。
$Path = "$Pshome\Types.ps1xml"
$XPath = "/Types/Type/Members/AliasProperty"
Select-Xml -Path $Path -XPath $Xpath | Select-Object -ExpandProperty Node
Name ReferencedMemberName
---- --------------------
Count Length
Name Key
Name ServiceName
RequiredServices ServicesDependedOn
ProcessName Name
Handles Handlecount
VM VirtualSize
WS WorkingSetSize
Name ProcessName
Handles Handlecount
VM VirtualMemorySize
WS WorkingSet
PM PagedMemorySize
NPM NonpagedSystemMemorySize
Name __Class
Namespace ModuleName
结果显示 Types.ps1xml
文件中每个别名属性的名称和 ReferencedMemberName。例如,有一个 Count 属性是 Length 属性的别名。
示例2:输入XML文档
此示例演示如何使用 XML 参数向 Select-Xml
cmdlet 提供 XML 文档。
Get-Content
cmdlet 获取 Types.ps1xml
文件的内容并将其保存在 $Types
变量中。 [xml]
将变量转换为 XML 对象。
Select-Xml
cmdlet 获取 Types.ps1xml
文件中的 MethodName 节点。该命令使用 Xml 参数指定 $Types
变量中的 XML 内容,并使用 XPath 参数指定 MethodName 节点。
[xml]$Types = Get-Content $Pshome\Types.ps1xml
Select-Xml -Xml $Types -XPath "//MethodName"
示例 3:搜索 PowerShell 帮助文件
此示例演示如何使用 Select-Xml
cmdlet 搜索 PowerShell 基于 XML 的 cmdlet 帮助文件。在此示例中,我们将搜索用作每个帮助文件标题的 cmdlet 名称以及帮助文件的路径。
$Namespace
变量包含一个哈希表,该表表示用于帮助文件的 XML 命名空间。
$Path
变量包含 PowerShell 帮助文件的路径。如果您的计算机上的此路径中没有帮助文件,请使用 Update-Help
cmdlet 下载帮助文件。有关可更新帮助的详细信息,请参阅 about_Updatable_Help。
Select-Xml
cmdlet 通过在文件中的任意位置查找 Command:Name
元素来搜索 XML 文件中的 cmdlet 名称。结果存储在 $Xml
变量中。 Select-Xml
返回一个 SelectXmlInfo 对象,该对象具有 Node 属性,该属性是一个 System.Xml.XmlElement 对象。 Node 属性有一个 InnerXML 属性,其中包含检索到的实际 XML。
$Xml
变量通过管道传输到 Format-Table
cmdlet。 Format-Table
命令使用计算属性获取 $Xml
变量中每个对象的 Node.InnerXML 属性,修剪空白文本之前和之后,并将其与源文件的路径一起显示在表格中。
$Namespace = @{
command = "http://schemas.microsoft.com/maml/dev/command/2004/10"
maml = "http://schemas.microsoft.com/maml/2004/10"
dev = "http://schemas.microsoft.com/maml/dev/2004/10"
}
$Path = "$Pshome\en-us\*dll-Help.xml"
$Xml = Select-Xml -Path $Path -Namespace $Namespace -XPath "//command:name"
$Xml | Format-Table @{Label="Name"; Expression= {($_.node.innerxml).trim()}}, Path -AutoSize
Name Path
---- ----
Export-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Get-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Get-WinEvent C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Import-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Add-Computer C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Management.dll-Help.xml
Add-Content C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Management.dll-Help.xml
Checkpoint-Computer C:\Windows\system32\WindowsPowerShell\v1.0\en-us\Microsoft.PowerShell.Commands.Management.dll-Help.xml
...
示例 4:输入 XML 的不同方式
此示例展示了将 XML 发送到 Select-Xml
cmdlet 的两种不同方法。
第一个命令将包含 XML 的此处字符串保存在 $Xml
变量中。有关此处字符串的更多信息,请参阅 about_Quoting_Rules。
Select-Xml
使用 Content 参数指定 $Xml
变量中的 XML。
第三个命令与第二个相同,只是 tt 使用管道运算符 (|
) 将 $Xml
变量中的 XML 发送到 Select- Xml
cmdlet。
$Xml = @"
<?xml version="1.0" encoding="utf-8"?>
<Book>
<projects>
<project name="Book1" date="2009-01-20">
<editions>
<edition language="English">En.Book1.com</edition>
<edition language="German">Ge.Book1.Com</edition>
<edition language="French">Fr.Book1.com</edition>
<edition language="Polish">Pl.Book1.com</edition>
</editions>
</project>
</projects>
</Book>
"@
Select-Xml -Content $Xml -XPath "//edition" | foreach {$_.node.InnerXML}
En.Book1.com
Ge.Book1.Com
Fr.Book1.com
Pl.Book1.com
$Xml | Select-Xml -XPath "//edition" | foreach {$_.node.InnerXML}
En.Book1.com
Ge.Book1.Com
Fr.Book1.com
Pl.Book1.com
示例 5:使用默认的 xmlns 命名空间
此示例演示如何对使用默认 xmlns 命名空间的 XML 文档使用 Select-Xml
cmdlet。该示例获取 Windows PowerShell ISE 用户创建的代码片段文件的标题。有关代码片段的信息,请参阅 New-IseSnippet。
$SnippetNamespace
变量包含片段 XML 文件使用的默认命名空间的哈希表。哈希表值是片段 XML 中的 XMLNS 架构 URI。哈希表键名 snip 是任意的。您可以使用任何未保留的名称,但不能使用 xmlns。
Select-Xml
cmdlet 获取每个代码段的 Title 元素的内容。它使用 Path 参数指定 Snippets 目录,使用 Namespace 参数指定 $SnippetNamespace
变量中的命名空间。 XPath 参数的值为 snip:Title
。结果通过管道传送到 ForEach-Object
cmdlet,该 cmdlet 从节点的 InnerXml 属性的值获取标题。
$SnippetNamespace = @{snip = "http://schemas.microsoft.com/PowerShell/Snippets"}
Select-Xml -Path $HOME\Documents\WindowsPowerShell\Snippets -Namespace $SnippetNamespace -XPath "//snip:Title" |
ForEach-Object {$_.Node.Innerxml}
参数
-Content
指定包含要搜索的 XML 的字符串。您还可以通过管道将字符串传递给 Select-Xml
。
String[]
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-LiteralPath
指定要搜索的 XML 文件的路径和文件名。与 Path 不同,LiteralPath 参数的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。
类型 :String[]
别名:PSPath, LP
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Namespace
指定 XML 中使用的命名空间的哈希表。使用格式@{=}
。
当 XML 使用以 xmlns 开头的默认命名空间时,请使用任意键作为命名空间名称。您不能使用 xmlns。在 XPath 语句中,为每个节点名称添加命名空间名称和冒号作为前缀,例如 //namespaceName:Node
。
哈希表
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Path
指定要搜索的 XML 文件的路径和文件名。允许使用通配符。
类型 :String[]
位置:1
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-Xml
指定一个或多个 XML 节点。
XML 文档将作为 XML 节点的集合进行处理。如果将 XML 文档通过管道传输到 Select-Xml
,则每个文档节点在通过管道时将被单独搜索。
XmlNode[]
别名:Node
位置:1
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-XPath
指定 XPath 搜索查询。查询语言区分大小写。此参数是必需的。
类型 :String
位置:0
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
输入
System.String 或 System.Xml.XmlNode
您可以通过管道将路径或 XML 节点传递给此 cmdlet。
输出
选择XmlInfo
笔记
XPath 是一种标准语言,旨在识别 XML 文档的各个部分。有关 XPath 语言的更多信息,请参阅 XPath 参考和事件选择的选择过滤器部分。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag