regex - Powershell 正则表达式复杂模式 (XML)
问题描述
我在 XML 中有一个字符串,我试图将其返回为一个变量(如下)。
<XMLElement><![CDATA[TEXT - I - FIND - INTERESTING]]></XMLElement>
我的问题是我对正则表达式一无所知,而且我发现很难理解如何将我的特殊字符转换为不被解释为正则表达式字符的“字符串”。
方括号之间的文本可以是任意长度和任意字符;这就是我想保存到我的变量中的内容,例如“TEXT - I - FIND - INTERESTING”。
我也想知道这是否实际上是解决这个问题的最佳方法。
任何支持将不胜感激。
解决方案
不要对 XML 使用正则表达式!
在 PowerShell 中使用 XML 的优点是我们可以使用 XPath 搜索和导航文档。在您的情况下,我将使用text()
选择器来解析 CDATA 部分的内部值:
$xml = [xml]@'
<root>
<XMLElement><![CDATA[TEXT - I - FIND - INTERESTING]]></XMLElement>
</root>
'@
$interestingString = $xml.SelectSingleNode('//XMLElement/text()').Value
//XMLElement
意思是“到处<XMLElement>
寻找”
推荐阅读
- java - 从本地存储库获取最新版本的 jar
- amazon-web-services - AWS CloudWatch Events 在 STS 角色上触发 SNS 为跨账户代入
- python - 将此 curl 命令转换为 python 请求库
- c# - 用c#从串口读取多个数据值
- vue.js - 在点击指令上切换类?
- android - Qt-Creator 无法编译 - 没有这样的文件或目录“c++config.h”
- css - 使用 ruby 将 sass 编译为 css
- angular - 订阅后如何订购数据
- ios - 在for循环中划分时出现Swift 3错误
- python-3.x - 如何为以下链接抓取所有产品的简短描述?