タグ付けされた質問 「xpath」

XPathの主な目的は、XMLドキュメントの一部に対処することです。また、文字列、数値、ブール値を操作するための基本的な機能も提供します。XPathはコンパクトな非XML構文を使用します。XPathは、表面の構文ではなく、XMLドキュメントの抽象的な論理構造で動作します。

10
特定の文字列を含む属性をどのように照合できますか?
属性に複数の単語が含まれている場合、属性でノードを選択するときに問題が発生します。例えば: <div class="atag btag" /> これは私のxpath式です: //*[@class='atag'] 式は <div class="atag" /> 前の例ではありません。どうすれば選択できます<div>か?
442 xpath 

7
XPathを使用して属性を取得する
次のようなXML構造があるとします。 <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> どのように私はの値が得ることができるlang(ここlangでeng最初の要素のために、本のタイトルには)?
344 xml  xpath 



8
JavaでXPathを使用してXMLを読み取る方法
JavaでXPathを使用してXMLデータを読みたいので、収集した情報について、要件に従ってXMLを解析できません。 これが私がしたいことです: URLを介してオンラインからXMLファイルを取得し、XPathを使用してそれを解析します。2つのメソッドを作成します。1つは特定のノード属性IDを入力し、結果としてすべての子ノードを取得するものです。2つ目は、特定の子ノードの値のみを取得したい場合です。 <?xml version="1.0"?> <howto> <topic name="Java"> <url>http://www.rgagnonjavahowto.htm</url> <car>taxi</car> </topic> <topic name="PowerBuilder"> <url>http://www.rgagnon/pbhowto.htm</url> <url>http://www.rgagnon/pbhowtonew.htm</url> </topic> <topic name="Javascript"> <url>http://www.rgagnon/jshowto.htm</url> </topic> <topic name="VBScript"> <url>http://www.rgagnon/vbshowto.htm</url> </topic> </howto> 上記の例では、@ nameで検索する場合はすべての要素を読み取り、@ name 'Javascript'のURLが1つのノード要素のみを返すようにする1つの関数も読み取ります。
273 java  xml  parsing  xpath 

7
XPathを介して属性ノードの値を抽出する
XPathを介して属性ノードの値を抽出するにはどうすればよいですか? サンプルXMLファイルは次のとおりです。 <parents name='Parents'> <Parent id='1' name='Parent_1'> <Children name='Children'> <child name='Child_2' id='2'>child2_Parent_1</child> <child name='Child_4' id='4'>child4_Parent_1</child> <child name='Child_1' id='3'>child1_Parent_1</child> <child name='Child_3' id='1'>child3_Parent_1</child> </Children> </Parent> <Parent id='2' name='Parent_2'> <Children name='Children'> <child name='Child_1' id='8'>child1_parent2</child> <child name='Child_2' id='7'>child2_parent2</child> <child name='Child_4' id='6'>child4_parent2</child> <child name='Child_3' id='5'>child3_parent2</child> </Children> </Parent> </parents> これまでのところ、このXPath文字列があります。 //Parent[@id='1']/Children/child[@name] child要素のみを返しますが、name属性の値が欲しいです。 私のサンプルXMLファイルの場合、出力は次のようになります。 Child_2 Child_4 Child_1 …
270 xml  xpath 

6
XPath contains(text()、 'some string')は、複数のTextサブノードを持つノードで使用すると機能しません
Xpathにdom4jが含まれるという小さな問題があります... 私のXMLは <Home> <Addr> <Street>ABC</Street> <Number>5</Number> <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment> </Addr> </Home> ルート要素を指定して、テキストにABCが含まれるすべてのノードを検索するとします。 だから私が書く必要があるxpathは //*[contains(text(),'ABC')] しかし、これはDom4jが返すものではありません....これはdom4jの問題ですか、それともxpathがどのように機能するかを理解しています。このクエリはStreet要素のみを返し、Comment要素は返しません。 DOMは、Comment要素を4つのタグ2 [Text = 'XYZ'][BR][BR][Text = 'ABC'] 要素を見つけてそこに実行内容を含める必要があるため、クエリはまだ要素を返すはずですが、そうではありません... ... 次のクエリは要素を返しますが、要素だけではなく、親要素も返します...これは問題には望ましくありません... //*[contains(text(),'ABC')] 要素<Street/>とのみを返すxpathクエリを知っている人はいます<Comment/>か?
259 xpath  dom4j 

9
Selenium WebDriverでJavaScriptを使用してXPathで要素を取得する方法はありますか?
私は次のようなものを探しています: getElementByXpath(//html[1]/body[1]/div[1]).innerHTML JSを使用して要素のinnerHTMLを取得する必要があります(Selenium WebDriver / Javaでそれを使用するには、WebDriverがそれ自体を見つけることができないため)。 ID属性を使用できますが、すべての要素にID属性があるわけではありません。 [修繕] 私はそれをJavaで実行するためにjsoupを使用しています。それは私のニーズにうまくいきます。


2
XPath:値に基づいて要素を選択する方法は?
XPathを使うのは初めてですが、これは基本的な質問かもしれません。親切に私に耐え、問題の解決を手伝ってください。次のようなXMLファイルがあります。 <RootNode> <FirstChild> <Element attribute1="abc" attribute2="xyz">Data</Element> <FirstChild> </RootNode> 私は<Element>タグの存在を検証できます: // Element [@ attribute1 = "abc" and @ attribute2 = "xyz"] 次に、stringのタグの値もチェックします"Data"。これを達成するために、私は使用するように言われました: // Element [@ attribute1 = "abc" and @ attribute2 = "xyz" and Data] 後者の式を使用すると、次のエラーが発生します。 アサーションエラーメッセージ:一致するノードがありません //Element[@attribute1="abc" and @attribute2="xyz" and Data] 私が使用したXPath式が有効であるかどうかのアドバイスを提供してください。そうでない場合、有効なXPath式は何ですか?
221 xpath 


1
子の子の値に基づいて要素を選択するXPath
いずれかの子の子の値に基づいて要素を選択しようとしています 次のことを考えても機能しない、助けてくれてありがとう、ありがとう ./book[/author/name = 'John'] または ./book[/author/name text() = 'John'] 著者名が「John」であるすべての本が欲しい Xmlファイル <list> <book> <author> <name>John</name> <number>4324234</number> </author> <title>New Book</title> <isbn>dsdaassda</isbn> </book> <book>...</book> <book>...</book> </list>
208 xml  xpath 

6
xpathはノードが存在するかどうかを見つける
xpathクエリを使用して、ノード(タグ)が存在するかどうかをどのように確認しますか? たとえば、ウェブサイトのページが/ html / bodyや/ html / head / titleのような正しい基本構造を持っていることを確認する必要がある場合
201 xslt  xpath  expression 

3
属性値によって要素を選択するXPath
以下のXMLがあります。 <?xml version="1.0" encoding="UTF-8"?> <Employees> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee> <Employee id="4"> <age>25</age> <name>Meghna</name> <gender>Female</gender> <role>Manager</role> </Employee> </Employees> id = "4"のEmployee要素を選択します。 何も返さない以下のXPath式を使用しています。 //Employee/[@id='4']/text() 私はそれをhttp://chris.photobooks.com/xml/default.htmでチェックしました、そしてそれは無効なxpathを言っています、問題がどこにあるかわかりません。
193 xml  xpath 

16
シェルからXPathワンライナーを実行する方法は?
UbuntuやCentOSのパッケージには、XPathワンライナーを実行できるコマンドラインツールがありますfoo //element@attribute filename.xmlか、またはfoo //element@attribute < filename.xml、結果を行ごとに返しますか? 私はちょうどapt-get install fooまたは私にできるようにする何かを探していますyum install foo、ラッパーやその他の適応が必要ない、そのまま、そのままですぐに機能するます。 近づくものの例をいくつか示します。 のこぎり。このラッパーを作成すると、上記の方法でラッパーを呼び出すことができます。 #!/usr/bin/ruby require 'nokogiri' Nokogiri::XML(STDIN).xpath(ARGV[0]).each do |row| puts row end XML :: XPath。このラッパーで動作します: #!/usr/bin/perl use 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"); } xpathXMLから:: XPathはあまりにも多くのノイズを返し、-- NODE --そしてattribute …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.