特別な属性によって SVG ドキュメントから要素を選択しようとしています。簡単な例を設定しました。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg">
<g id='1'>
<path id='2' type='A'/>
<rect id='3' type='B'/>
</g>
</svg>
ここで、次の構文を使用して、パス要素をその属性「タイプ」で取得します。
require 'rexml/document'
include REXML
xmlfile = File.new "xml_as_specified_above.svg"
xmldoc = Document.new(xmlfile)
XPath.match( xmldoc.root, "//path[@type]" )
http://www.w3schools.com/xpath/xpath_syntax.aspから直接構文。この式がパス要素を選択することを期待しますが、これは次のとおりです。
>> XPath.match( xmldoc.root, "//path[@type]" )
=> []
では、属性によってパス要素をアドレス指定するための XPath の正しい構文は何ですか? それとも REXML (3.1.7.3 を使用) にバグがありますか? 「rect」要素も取得するためのプラスポイント。