这可能是一个 XML 命名空间新手问题,但我不知道如何让 XPath 与以下截断的 XML 一起使用这个特定的根元素:
<?xml version="1.0" encoding="UTF-8"?>
<CreateOrUpdateEventsRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://dhamma.org" version="3-0-0">
<LanguageKey>
<IsoCode>en</IsoCode>
</LanguageKey>
<Publish>
<Value>true</Value>
</Publish>
<Events>
<Event>
<EventKey>
<LocationKey>
<SubDomain>rasmi</SubDomain>
</LocationKey>
<EventId>10DayPDFStdTag</EventId>
</EventKey>
</Event>
</Events>
</LanguageKey>
</CreateOrUpdateEventsRequest>
使用 Ruby 和 Nokogiri(带有刚刚更新的 libxml2),只有当我删除根元素中的所有额外信息时,它才能与 XPath 一起正常工作,使其:
<CreateOrUpdateEventsRequest>
否则没有任何效果:
$> @doc.xpath("//CreateOrUpdateEventsRequest") #=> [] with original header, an array of nodes with modified header
$> @doc.xpath("//LanguageKey") #=> [] with the original header, an array of nodes with modified header
$> @doc.xpath("//xmlns:LanguageKey") #=> undefined namespace prefix with the original
如何使用 XPath 处理这样的命名空间?