【发布时间】:2011-09-16 16:52:34
【问题描述】:
我需要帮助。我正在读取一个文件(不是 XML 文件),其中的内容在形式上很像 XML:
<xml> <details>
<details><number>AB053091351</number><totalcontent>2</totalcontent></details>
<details><number>AB053091996</number><totalcontent>2</totalcontent></details>
<details><number>AB053092621</number><totalcontent>2</totalcontent></details>
<details><number>AB053093365</number><totalcontent>0</totalcontent></details>
</details> </xml>
我这样做:
$TRGFile <<-- filename of the content above.
$result = Get-Content $TRGFile
$pattern = '<policynumber>'
$detailResult = ($result |Select-String -Pattern $pattern)
结果给了我这个:
<details><number>AB053091351</number><totalcontent>2</totalcontent></details>
<details><number>AB053091996</number><totalcontent>2</totalcontent></details>
<details><number>AB053092621</number><totalcontent>2</totalcontent></details>
<details><number>AB053093365</number><totalcontent>0</totalcontent></details>
我需要在每一行上循环以获取“AB053091351”和“2”中的值。请注意,虽然这是 XML 模式,但它是纯文本。
有人知道如何提取这些标签中的值吗?什么 Powershell 函数/cmdlet 适合这个?
他的文件在 .txt 中。我尝试使用以下方法将文件转换为 XML:
Get-Content E:\file.txt | Export-CliXML E:\file.xml
为了让我像您提供的那样编写代码。但生成的 XML 文件不同:
<Obj RefId="5">
<S><details><number>053091351</number><contentpages>2</contentpages></details></S>
</Obj>
其中
<details><number>053091351</number><contentpages>2</contentpages></details>
was referred as string & not as tag.
【问题讨论】:
-
示例数据和您的代码不匹配。
$pattern = '<policynumber>'从哪里得到的? -
这种格式与 XML 有何不同?
标签: xml powershell split