第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從shell執(zhí)行XPath單行程序?

如何從shell執(zhí)行XPath單行程序?

如何從shell執(zhí)行XPath單行程序?對(duì)于Ubuntu和/或CentOS,是否有一個(gè)包,它有一個(gè)命令行工具,可以執(zhí)行XPath單線程,foo //element@attribute filename.xml或者foo //element@attribute < filename.xml逐行返回結(jié)果?我正在尋找一些可以讓我只是apt-get install foo或者yum install foo然后只是開箱即用,沒有包裝或其他必要的改編的東西。以下是一些接近的事例:引入nokogiri。如果我寫這個(gè)包裝器,我可以用上面描述的方式調(diào)用包裝器:#!/usr/bin/rubyrequire 'nokogiri'Nokogiri::XML(STDIN).xpath(ARGV[0]).each do |row|   puts rowendXML :: XPath的。可以使用這個(gè)包裝器:#!/usr/bin/perluse strict;use warnings;use XML::XPath;my $root = XML::XPath->new(ioref => 'STDIN');for my $node ($root->find($ARGV[0])->get_nodelist) {   print($node->getData, "\n");}xpath來(lái)自XML :: XPath返回太多噪音,-- NODE --和attribute = "value"。xml_grep 來(lái)自XML :: Twig無(wú)法處理不返回元素的表達(dá)式,因此無(wú)法在不進(jìn)一步處理的情況下提取屬性值。編輯:echo cat //element/@attribute | xmllint --shell filename.xml返回類似的噪音xpath。xmllint --xpath //element/@attribute filename.xml回報(bào)attribute = "value"。xmllint --xpath 'string(//element/@attribute)' filename.xml 返回我想要的,但僅限于第一場(chǎng)比賽。對(duì)于幾乎滿足該問題的另一個(gè)解決方案,這里有一個(gè)可用于評(píng)估任意XPath表達(dá)式的XSLT(需要dyn:在XSLT處理器中評(píng)估支持):<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"     xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn">   <xsl:output omit-xml-declaration="yes" indent="no" method="text"/>   <xsl:template match="/">     <xsl:for-each select="dyn:evaluate($pattern)">       <xsl:value-of select="dyn:evaluate($value)"/>       <xsl:value-of select="'&#10;'"/>     </xsl:for-each>    </xsl:template></xsl:stylesheet>運(yùn)行xsltproc --stringparam pattern //element/@attribute --stringparam value . arbitrary-xpath.xslt filename.xml。
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

你應(yīng)該嘗試這些工具:

  • xmlstarlet :可以編輯,選擇,轉(zhuǎn)換...默認(rèn)情況下不安裝,xpath1

  • xmllint:經(jīng)常默認(rèn)使用libxml2xpath1 安裝(檢查我的包裝器是否有換行符分隔輸出

  • xpath:通過perl的模塊XML::XPathxpath1 安裝

  • xml_grep:通過perl的模塊安裝XML::Twig,xpath1(有限的xpath用法)

  • xidel:xpath3

  • saxon-lint :我自己的項(xiàng)目,包裝在@Michael Kay的Saxon-HE Java庫(kù)xpath3上

xmllint附帶libxml2-utils(可用作--shell交換機(jī)的交互式外殼)

xmlstarletxmlstarlet

xpath 附帶perl的模塊 XML::Xpath

xml_grep 附帶perl的模塊 XML::Twig

xidel 是 xidel

saxon-lint使用SaxonHE 9.6,XPath 3.x(+復(fù)古兼容性)

例如:

xmllint --xpath '//element/@attribute' file.xml
xmlstarlet sel -t -v "//element/@attribute" file.xml
xpath -q -e '//element/@attribute' file.xml
xidel -se '//element/@attribute' file.xml
saxon-lint --xpath '//element/@attribute' file.xml


查看完整回答
反對(duì) 回復(fù) 2019-08-15
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

你也可以嘗試我的Xidel。它不在存儲(chǔ)庫(kù)的包中,但您可以從網(wǎng)頁(yè)下載它(它沒有依賴項(xiàng))。

它具有此任務(wù)的簡(jiǎn)單語(yǔ)法:

xidel filename.xml -e '//element/@attribute'

它是支持XPath 2的這些工具中罕見的一種。


查看完整回答
反對(duì) 回復(fù) 2019-08-15
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

一個(gè)很可能已安裝在系統(tǒng)上的軟件包已經(jīng)存在python-lxml。如果是這樣,可以在不安裝任何額外包的情況下實(shí)現(xiàn):

python -c "from lxml.etree import parse; from sys import stdin; print '\n'.join(parse(stdin).xpath('//element/@attribute'))"


查看完整回答
反對(duì) 回復(fù) 2019-08-15
  • 3 回答
  • 0 關(guān)注
  • 1285 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)