2

rubyいくつかのスクリプトを次のように変換していposhます:

> gem install nokogiri

> irb

> require 'nokogiri'

> $html = Nokogiri::HTML("<div><img src='//127.0.0.1:5598/user/first.png' />
                       <img src='//127.0.0.1:5598/user/second.png' /></div>")

> $html.xpath('//img[contains(@src,"first")]')

# Output: <img src='//127.0.0.1:5598/user/first.png' />

PowerShell には、次のものがあります。

> [System.Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq")

> [System.Reflection.Assembly]::LoadWithPartialName("System.Xml.XPath")

> $html = [System.Xml.Linq.XDocument]::Parse("<div>
                       <img src='//127.0.0.1:5598/user/first.png' />
                       <img src='//127.0.0.1:5598/user/second.png' /></div>")

> [System.Xml.XPath.Extensions]::XPathSelectElement($html, 
                                  '//img[contains(@src,"first")]')

# It displays the properties of XElement type object

同じ出力を得るには?

PowerShell v.4 で html を解析するより良い方法はありますか?

4

3 に答える 3

2

CMDLET を使用するだけで XML をクエリする別の方法:

$xml = [xml]@"
<div>
<img src='//127.0.0.1:5598/user/first.png' />
<img src='//127.0.0.1:5598/user/second.png' />
</div>
"@

(select-xml -xml $xml -xpath '//img[contains(@src,"first")]' ) | % { $_.node.src }
于 2013-07-11T12:27:06.680 に答える
2

追加するだけ.ToString()で、同じ出力が得られます。

これは、同じものを生成するより簡単な代替手段です。

$html = [xml] "<div><img src='//127.0.0.1:5598/user/first.png' />
                    <img src='//127.0.0.1:5598/user/second.png' /></div>"
$html.SelectSingleNode('//img[contains(@src,"first")]').OuterXml

あるいは

($html.div.img | ?{ $_.src -match 'first' }).outerxml

XML独自の PowerShell の例に従って処理していると想定していることに注意してください (処理に慣れていませんHTML)…</p>

于 2013-07-11T12:05:18.920 に答える