問題タブ [xml-libxml]
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.
perl - Perl、LibXML、およびスキーマ
スキーマに対してファイルをロードして検証しようとしているPerlスクリプトの例があります。それらはさまざまなノードに問い合わせます。
残念ながら、XML ファイルは正常に検証されていますが、$book アイテムが見つからないため、何も出力されません。
XML ファイルからスキーマを削除し、PL ファイルから検証を削除すると、問題なく動作します。
デフォルトの名前空間を使用しています。デフォルトの名前空間 (xmlns:lib="http://libs.domain.com") を使用しないように変更し、XML ファイル内のすべての項目の前に lib を付け、XPath 式を変更して名前空間のプレフィックス (/lib: library/lib:book) その後、再びファイルを動作させます。
なんで?そして私は何が欠けていますか?
XML:
XSD:
xml - XML::LibXML を使用して、SAX を使用して XML を解析するにはどうすればよいですか?
私がこれまでに見つけた唯一のサンプル コードは、古すぎてもう機能しません (廃止されたクラスを使用しています)。必要なのは、次のことを示す基本的なものだけです。
ファイルからの XML の読み込みと解析
SAX イベント ハンドラの定義
イベント ハンドラーに渡された要素の属性またはテキスト値の読み取り
windows - Windows に XML::LibXML モジュールをインストールできません
XPath
いくつかの HTML タグとデータを抽出するために使用しようとしています。そのためには、XML::LibXML
モジュールを使用する必要があります。
CPAN シェルからインストールしようとしましたが、インストールされません。
インストールに関する CPAN サイトの指示に従いました。インストールする前libxml2
にiconv
とzlib
ラッパーをインストールする必要がありますが、XML::LibXML
うまくいきませんでした。
また、私の仕事を成し遂げるもっと簡単なモジュールが他にあれば、私に知らせてください。
当面のタスク:
<dd>
本当に大きい (約 5000 ~ 10000)<dd>
とタグの html ページで特定のタグを検索してい<dt>
ます。<dd>
そのため、タグ内のコンテンツに一致し、対応する (次の)タグ内のコンテンツを取得するスクリプトを作成しています<dt>
。
もう少しはっきりしていればよかったのに。どんな助けでも大歓迎です。
perl - ActivePerl 用の XML::LibXML をインストールするにはどうすればよいですか?
私は Perl が初めてで、ActivePerlを使用しています。次のエラーが表示されます。
@INC で XML/LibXML.pm が見つかりません...
すべてを試しましたが、XML::LibXML の「正しい」モジュールをインストールする手順が見つかりません。
これがまさに何が起こっているかです。コマンド プロンプトからスクリプトを実行しています。
c:\temp>perl myscript.pl
myscript.pl の最初の数行:
次に、次のエラーが表示されます。
c:\temp>perl myscript.pl myscript.pl 行 7 の @INC に XML/LibXML.pm が見つかりません (@INC には C:/Perl/site/lib C:/Perl/lib が含まれます)。失敗 -- myscript.pl 行 7 でコンパイルが中止されました
perl - PerlのXML::LibXMLから属性と要素にアクセスするにはどうすればよいですか?
PerlのXML::LibXMLパッケージで名前空間を理解/使用するのに問題があります。要素には正常にアクセスできますが、属性にはアクセスできません。XMLファイル( http://pastebin.com/f3fb9d1d0 )にアクセスする次のコードがあります。
次に、common-nameという要素とnameという属性にアクセスしてみます。
ただし、ラテン語の名前(@name
)のみが出力され、一般名は出力されません。何が間違っているのでしょうか。また、一般名を印刷するにはどうすればよいですか。
この場合、@ nameは何をしますか?私はそれが配列であり、属性は複数存在する可能性があるため配列に入れる必要があると思いますが、要素(共通名など)は1つだけである必要があるため、そうすべきではありませんか?
私はここの例に従ってきました: http: //www.xml.com/pub/a/2001/11/14/xml-libxml.html そしてここ:http://perl-xml.sourceforge.net/faq /#namespaces_xpath、そして彼らのサンプルのラクダスクリプトを私の名前空間で動作させようとしているので、奇妙な名前空間です。
perl - XML::LibXML の XPath を使用して XML ファイル内の要素にアクセスできないのはなぜですか?
XML ファイルがあり、その一部は次のようになります。
Perl の libXML を使用してファイルを解析し、次を使用して wellName と rawData を出力しようとしています。
現在何も出力されていません。Xpath ステートメントに問題があると思います。修正を手伝ってもらえますか、それとも xpath ステートメントのトラブルシューティング方法を教えてもらえますか? ありがとう。
html - XML::LibXML::Reader は HTML を読みますか?
XML::LibXML::Readerのドキュメントで、HTML の解析については何も見つかりませんでした。そして、HTML サイトを解析しようとしましたが、うまくいきませんでした。XML::LibXML::Reader は HTML では動作しないという私の結論は正しいですか?
perl - Perl の XML::LibXML モジュール (特に XPathContext) が位置を評価しないのはなぜですか?
次の形式のドキュメントの XML 表現があります。
XML::LibXML を使用してドキュメントを解析し、文の位置を取得しようとしています。
私が得るエラーは「XPathエラー:無効なコンテキスト位置エラー」です。私はドキュメントを読んで、この興味深い一口を見つけました
初期コンテキストで XPath 関数 position() を評価すると、XPath エラーが発生します
私の問題は、この情報をどう処理すればよいかわからないことです。「初期コンテキスト」とは何ですか? エンジンがコンテキストの位置を自動的に追跡するようにするにはどうすればよいですか?
Re: @ダン
答えに感謝します。あなたの例を試してみましたが、うまくいきました。私のコードでは、コンテキストが perl 変数によって表されるノードであると想定していました。だから、 $sentence->find( 'position()' ) './position()' になりたかった。実際の例を見たにもかかわらず、私はまだできません
しかし、私はすることができます
position() は、あなたのようなクエリを制限するためにのみ使用できますか?
xml - XML::LibXML 行末 (空白) の問題
こんにちは、Perl で LibXML を使用して XML ファイルを解析しています。私が抱えている問題は、末尾の文字 (空白) がテキスト ノードとして扱われることです。たとえば、次のような入力が与えられた場合
パーサーは、ノード「books」の子の数が 3 であると考えています。
<books>
テキスト ノード (との間の文字を含む<book>
)- の要素ノード
<book>
</book>
テキスト ノード (との間の文字を含む</books>
)
質問は、空白を無視するように LibXML に指示するにはどうすればよいですか? no_blanks (つまり、パーサーを構築するときに $parser = XML::LibXML->new(no_blanks => 1) ) を試しましたが、効果がないようです。
前もって感謝します
perl - XML::LibXML: 検索で数値/ブールオブジェクトを取得する方法は?
http://metacpan.org/pod/XML::LibXML::Nodeから:
find は、現在のノードを式のコンテキストとして使用して XPath 1.0 式を評価し、XPath 式の結果のタイプに応じて結果を返します。たとえば、XPath "1 * 3 + 52" では、XML::LibXML::Number オブジェクトが返されます。他の式は、XML::LibXML::Boolean オブジェクト、または XML::LibXML::Literal オブジェクト (文字列) を返す場合があります。
私の例では、find は XML::LibXML::Literal オブジェクト (文字列) を返すと思います。find が XML::LibXML::Number オブジェクトを返す例を教えてください。XML::LibXML::Boolean オブジェクト?
出力
消去