Sahu Baba
Sahu Baba

Reputation: 11

Parse custom tag in html file using powershell

I have a custom html file, with the below code with custom tag "TBD:comment". I want to get content from this tag.

<HTML>
<BODY>
<h1> This is a heading </h1>
<P id='para1'>First Paragraph with some Random text</P>
<P>Second paragraph with more random text</P>
<A href="http://Geekeefy.wordpress.com">Cool Powershell blog</A>
<TBD:comment name="Title"><h3>Katamma katamma loge kathamma</h3> 
</TBD:comment>
<TBD:comment name="content"><h3>Lorem Ipsum is simply dummy text of the 
printing and typesetting industry. Lorem Ipsum has been the industry's 
standard dummy text ever since the 1500s, when an unk</h3> </TBD:comment>
</BODY>
</HTML>

The below code does not seem to work with the custom tag.

enter code here
$html = Get-Content "C:\Users\sahuBaba\Desktop\ht.html" -Raw
$doc = New-Object -com "HTMLFILE"
$doc.IHTMLDocument2_write($html)

$text = $doc.body.getElementsByTagName("TBD:comment")
"Inner Text: " + $text[1].innerText

no output. Can someone please help? Thanks in advance.

Upvotes: 1

Views: 1021

Answers (1)

hkarask
hkarask

Reputation: 573

Try with regex:

$regex = New-Object Text.RegularExpressions.Regex "<TBD:comment.+?(>.+?)<\/TBD:comment>", ('singleline', 'multiline')
$content = "<your html>"
foreach($m in $regex.Matches($content)) {
    # remove leading '<'
    $m.Groups[1].Value.Substring(1)
}

Upvotes: 1

Related Questions