Я пытаюсь выбрать элемент из документа 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".