【问题标题】:How to remove the <br> and space from the JSON output in powershell如何从 powershell 中的 JSON 输出中删除 <br> 和空格
【发布时间】:2020-03-10 13:13:06
【问题描述】:

在这方面需要您的帮助。当我从 json 文件中获取描述时。我得到一个乱码字符串输出。需要删除 HTML 标记和空格,但我找不到任何适合我的问题的内容。

最后,在我们删除标签和空格之后.. 我如何获得特定字段的输出。比如姓氏值和部门。谢谢!

正确的输出应该是这样的,

Last Name: Tes Last name <br/>
Preferred Name: Test name <br/>
Company: test Company<br/>
Department: Test Department<br/>

我目前使用的代码:

$request = 'https://****F'
Invoke-WebRequest $request |
ConvertFrom-Json  |
select -expand request |
Select -expand description  ;# -replace(/<\/?[^>]+>/gi '')

【问题讨论】:

    标签: json xml powershell


    【解决方案1】:

    文本是 HTML(或至少是 HTML 片段),因此最好的方法是使用 HTML 解析器。

    鉴于这些并不容易获得,您可以尝试以下字符串解析方法

    $requestDescr = 
      Invoke-WebRequest 'https://****F' |
       ConvertFrom-Json  |
        Select -expand request |
         Select -expand description 
    
    $cleanLines = ($requestDescr -split '<br */>|</?div>').Trim() -ne ''
    
    • $requestDescr -split '&lt;br */&gt;|&lt;/?div&gt;'&lt;br&gt;&lt;div&gt; 元素拆分输入(使用正则表达式)

    • .Trim() 从所有结果字符串中删除前导和尾随空格。

    • -ne '' 然后过滤掉空字符串。

    这应该产生一个行数组,例如:

    Please set up an Active Directory account for Lou Segouci
    Job Req ID: 417
    Middle Name:
    Last Name: Segoucy
    Title: Payment Processing Keyer
    

    为了将其转换为哈希表

    $fieldsTable = [ordered] @{}
    $cleanLines -match ':' | 
      foreach { $key, $value = $_ -split ': *', 2; $fieldsTable[$key] = $value } 
    
    • $key, $value = $_ -split ': *', 2 将每行拆分为两个标记,: 可选后跟空格,并将标记存储在不同的变量中。

    • $fieldsTable[$key] = $value 然后为这个键值对添加一个条目。

    注意:为了方便以后通过属性(键)名称访问,您可以使用
    $fieldsTable[$key -replace ' '] = $value 简化键名,以便条目 Job Req ID 可以更简单地访问为 JobReqId

    $fieldsTable 现在是一个(有序的)哈希表,键名为 Job Req IDMiddle Name、...,允许您使用 $fieldsTable['Job Req ID'] 等表达式提取属性。

    # Contents of $fieldsTable
    Name                           Value
    ----                           -----
    Job Req ID                     417
    Middle Name                   
    Last Name                      Segouci
    Title                          Payment Processing Keyer
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多