/ / Używanie saxon xpath w Javie w systemie Windows z wiersza poleceń - xml, xpath, saxon

Używanie saxon xpath w java w oknach z wiersza poleceń - xml, xpath, saxon

Uruchomię to polecenie w wierszu polecenia:

java -cp "saxon9he.jar" net.sf.saxon.Query -s:"xml document" -qs:"//Customer[@CustomerID="HUNGC"]//Country" -o:"results.xml"

Dostaję to: dokument źródłowy zignorowany - zapytanie nie ma dostępu do elementu kontekstu

Czy ktoś wie, na czym polega problem i jak go naprawić? Dziękuję Ci!

Odpowiedzi:

1 dla odpowiedzi № 1

Ostrzeżenie oznacza dokładnie to, co mówi: dostarczono dokument źródłowy, ale wyrażenie XPath go nie używa.

Jeśli chcesz zrozumieć, dlaczego XPathwyrażenie nie używa dokumentu źródłowego, pokaż nam swoje wyrażenie XPath. Przykładem tego ostrzeżenia jest -qs: „2 + 2”, gdzie wynikiem wyrażenia jest 4 niezależnie od wszystkiego w dokumencie źródłowym.

(po twoim komentarzu)

Zwykle używam podwójnych cudzysłowów wokółwyrażenie i pojedyncze cudzysłowy. Prawdopodobnie zależy to od używanej powłoki, ale podejrzewam, że wyrażenie zostało przekazane do Saksu otaczającego pojedyncze cudzysłowy i wszystko, co oznacza, że ​​całe wyrażenie jest dosłowne. - Michael Kay 7 godzin temu


0 dla odpowiedzi nr 2

Ten komunikat o błędzie pojawia się, ponieważ chcesz wykonać nieprawidłowe wyrażenie XPath (XPath expression) na prawdopodobnie nieistniejącym dokumencie (xml document).

Wymień ciągi xml document i XPath expression według dokumentu wejściowego i zapytania, które chcesz wykonać.

Od Instrukcja Saxon Command Line:

-qs:querystring

Pozwala na określenie zapytania w linii (jeśli zawiera spacje, będziesz potrzebować cudzysłowu wokół wyrażenia, aby procesor wiersza poleceń był szczęśliwy). Na przykład java net.sf.saxon.Query -qs:doc("a.xml")//p[1] selects elements within the file a.xml w bieżącym katalogu.

-s:filename-or-URI

Pobierz dane z określonego pliku. Jeśli… -u opcja jest określona lub jeśli nazwa zaczyna się od „file:"lub"http:”, wówczas przyjmuje się, że nazwa to URIniż nazwa pliku. Ten plik musi zawierać dokument XML. Węzeł dokumentu jest udostępniany kwerendie jako element kontekstu. Dokument źródłowy można określić jako „-", aby pobrać źródło ze standardowego wejścia.


0 dla odpowiedzi № 3

Tutaj jest przykładem użycia Saxona jako narzędzia wiersza poleceń XPath:

saxon () { java -cp saxon9he.jar net.sf.saxon.Query "$@" ; }
xpath () { saxon "!method=text" -s:- -qs:"$1" ; }

Oto przykład danych wyjściowych svn:

svn info --xml | xpath "/info/entry/repository/root/text()"