CSSセレクタでネームスペースを含むタグを選択する方法


以下のようなXMLがあるときに`XPath`を使えば問題なく取得できるのですが、CSSセレクタでも同様の取得はできますか？

[code]

    doc = Nokogiri::XML(<<-EOF
    <xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance">
    <xbrli:context id="AsOf2016-09-30">
          <xbrli:entity>
            <xbrli:identifier scheme="http://www.sec.gov/CIK">0001621697</xbrli:identifier>
          </xbrli:entity>
          <xbrli:period>
            <xbrli:instant>2016-09-30</xbrli:instant>
          </xbrli:period>
          </xbrli:context>
          EOF
    )
    
[/code]

`XPath`ならこの形で取れるので

[code]

    > doc.at_xpath('//*[@id="AsOf2016-09-30"]/xbrli:period/xbrli:instant')
    # => <xbrli:instant>2016-09-30</xbrli:instant>
    
[/code]

CSSセレクタはこのようにすればいけるかと思ったのですが取得できませんでした。

[code]

    > doc.at_css('#AsOf2016-09-30 > xbrli:period > xbrli:instant')
    # => nil
    
[/code]

CSSセレクタでは namespace の取扱はどうすればよいのでしょうか？




CSSセレクターでのXML namespaceは`|`で表現します。 [Selectors Level 3 / 6.1.1. Type selectors
and namespaces](https://www.w3.org/TR/selectors/#typenmsp)

[code]

    doc.at_css('#AsOf2016-09-30 > xbrli|period > xbrli|instant')
    
[/code]

でどうでしょうか？




CSSセレクターでのXML namespaceは`|`で表現します。 [Selectors Level 3 / 6.1.1. Type selectors
and namespaces](https://www.w3.org/TR/selectors/#typenmsp)

[code]

    doc.at_css('#AsOf2016-09-30 > xbrli|period > xbrli|instant')
    
[/code]

でどうでしょうか？

