問題タブ [xmllint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
100 参照

xml - XPath スクリプトは入力 1 では機能しませんが、入力 2 では問題なく機能します

さて、問題を説明する方法がよくわかりません。基本的に、XML ファイルを持っています。XML ファイルで文字列を含むノードを検索して、情報を取得しようとしています。

<table>私の問題は、XML ファイル全体ではなく、関心のあるタグのみを含めると、次のスクリプトが機能することです。これは私が入力 2 と呼んでいるもので、問題なく動作します。

しかし、XML ファイル全体を使用すると機能しません。スクリプトは次のとおりです。 (tidy -asxml input.xml | xmllint --xpath 'descendant-or-self::*[starts-with(text(), "Aktiv tid:")]/following-sibling::*/text()' -) 2>/dev/null

入力された 1 つの XML ファイル (完全な XML ファイル) は次のとおりです。

入力 2 つの XML ファイルは次のとおりです。

したがって、何らかの理由で、この行の前と次の行を含むすべてを削除すると:

<div class='contentcontainer'>

スクリプトは正常に動作します。

これは私には非常に奇妙に思えますが、非常に基本的な問題のように思えます。

だから私の質問は、どうすればこれを修正できますか?

前もって感謝します!

0 投票する
1 に答える
1307 参照

xml - これは本当に有効な xs:decimal ではありませんか?

これがxmllintが私に言っていることです:

有効な場所のデフォルトの数はありますか? このとおり で あ る はず が な い。

更新: xmllint を試してみると、小数点以下 17 桁は有効ですが、18 桁は有効ではありません。

0 投票する
2 に答える
1448 参照

bash - XML データを列形式に抽出する bash スクリプト

複数の文字列出力から xml データを動的に (データが変化して) 列形式に抽出しようとしています。

SQL データベースに対してクエリを実行すると、これらの XML ビットのうち約 100 個がエコーアウトされます。

そして、必要なのは列形式の and です。そして、本質的にホスト名が Hostname-H-A10D と等しい場合、最後の D を一致させ、最初の列を Dev、Q を Test としてマークし、最後に Prod として文字を付けないようにしたいと考えています。したがって、出力は次のようになります -->

私は sed/awk/etc をいじってみましたが、一時的なフラット ファイルを書き出さないと、必要な形式を取得できないだけではありません。xmlstarlet や xmllint などを使用して、これを配列に入れることをお勧めします。もちろん、より良い提案を行うことができます。それが私がここにいる理由です:) ありがとうございます。

0 投票する
3 に答える
73092 参照

xml - XPATH を使用した Linux Bash XMLLINT

今日は、xmllint を適切に使用する方法を学びます。十分にカバーまたは説明されていないようです。単一の言語リソース ファイルを使用して、システム全体を実行する予定です。この言語ファイルから読み取る必要がある bash スクリプトと php ページが混在しています。

現在、xml ファイル en.xml で次の形式を使用しています。

ここで、xml ファイルからデータ値を取得する bash スクリプト行から始める必要があります。たとえば、アイテムDESCRIPTIONからの値を取得したいとしindex.phpます。

使っていました

機能した別のレイアウトの場合、xml ファイルのレイアウトを変更しているため、特定の要素をターゲットに<item>して、bash スクリプトでその子要素にドリルダウンする方法がわかりません。

xmllint --xpath誰かがこの値を取得するための行を手伝ってもらえますか?

0 投票する
1 に答える
1693 参照

xml - XML: 型定義がありません

私はこの [1] XML スキーマを使用して、xmllint で XML ドキュメントを検証しています。

検証は失敗します

metadata.xml の 55 行目:

ただし、私が欲しいもののサンプルドキュメントがあります。ここにあります[2]。

この例をスキーマに対して検証すると、同じ検証エラーが発生します。

私は何が欠けていますか?

[1] http://www.loc.gov/standards/mets/mets.xsd

[2] http://www.loc.gov/standards/premis/louis-2-0.xml

0 投票する
1 に答える
394 参照

xpath - string() 関数を各属性に適用する方法は?

Bash スクリプトでいくつかのハイパー参照を取得する必要があります。

次のコマンドはcurl、 とを使用して、HTML ページのすべての属性xmllintを読み取ります。href

しかし、属性の値だけが必要です。属性の値は関数で選択できますstring()。しかし、それを使用すると、属性のリストの最初の要素のみが取得されます。

string()関数を各属性に適用するにはどうすればよいですか?

0 投票する
0 に答える
687 参照

xml - xmllint で Yahoo Weather RSS からタグ「<yweather:condition>」を取得する方法

Yahoo Weather RSS からノードを解析して抽出してみましょう。

URLはこちらhttp://weather.yahooapis.com/forecastrss?w=12602818&u=c

この目的にはxmllintを使用する必要があります。

抽出するノードは次のとおりです。

問題

ナイーブxmllint --xpath "//yweather:condition" the_rss_file_from_yahooはエラーで答えました:

名前空間が定義されているという事実に由来する必要があります。しかし、私たちはここで立ち往生しています。

コマンドラインでxmllintを使用してこのノードを取得することは可能ですか? はいの場合、どのように?

編集/回答:質問が重複しているとマークされているため、ワンライナーソリューションを探している私のようなXPath初心者の場合は、1つを使用xmllint filename --xpath "//*[local-name()='condition']"していた他の質問とは反対に、2つのスラッシュを使用できます(アクセスしていたため)ルートノード)。ただし、これに対処する正式な方法については、元の質問の回答 A) を参照し、XPath クエリで / の代わりに // を使用してください (助けてくれた Tomalek に感謝します)。