2
我有這個XML文件,我需要獲得一本書的名稱和作者,其中至少有一位作者的名字以「E」開頭。Xpath - 同名的多個標籤,以子串開頭
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library SYSTEM "knihy.dtd">
<library>
<book isbn="0470114878">
<author hlavni="hlavni">David Hunter</author>
<author>Jeff Rafter</author>
<author>Joe Fawcett</author>
<author>Eric van der Vlist</author>
<author>Danny Ayers</author>
<name>Beginning XML</name>
<publisher>Wrox</publisher>
</book>
<book isbn="0596004206">
<author>Erik Ray</author>
<name>Learning XML</name>
<publisher>O'Reilly</publisher>
</book>
<book isbn="0764547593">
<author>Kay Ethier</author>
<author>Alan Houser</author>
<name>XML Weekend Crash Course</name>
<year>2001</year>
</book>
<book isbn="1590596765">
<author>Sas Jacobs</author>
<name>Beginning XML with DOM and Ajax</name>
<publisher>Apress</publisher>
<year>2006</year>
</book>
</library>
我試過這種方法
但在invokeTransform返回XPathException的:多個項目的順序是不允許作爲第一個參數開始,用()(「大衛·亨特」 ,「傑夫拉夫特」,...)。那我該如何檢查這個序列呢?
權,並簡化爲'/庫/書[作者[開始-用( 「E」。)]]',which'll使用XPath 1.0工作太。 – kjhughes
謝謝,我編輯了return語句。我不得不退還$ kniha in/knihovna/kniha [autor [starts-with(。,「E」)]]這個書的作者=> return $ kniha/autor/concat(。,「 - 」 ,$ kniha/nazev) – Arcane