Search Results

Search found 803 results on 33 pages for 'xpath'.

Page 3/33 | < Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • PERL XPath Parser Help

    - by cognvision
    I want to pull in data using a XML::XPath parser from a XML DB file from the Worldbank site. The problem is that I'm not seeing any results in the output. I must be missing something in the code. Ideally, I would like to extract just the death rate statistics from each country XML DB (year and value). I'm using this as part of my input: http://data.worldbank.org/sites/default/files/countries/en/afghanistan_en.xml use strict; use LWP 5.64; use HTML::ContentExtractor; use XML::XPath; my $agent1 = LWP::UserAgent->new; my $extractor = HTML::ContentExtractor->new(); #Retrieve main Worldbank country site my $mainlink = "http://data.worldbank.org/country/"; my $page = $agent1->get("$mainlink"); my $fulltext = $page->decoded_content(); #Match to just all available countries in Worldbank my $country = ""; my @countryList; if (@countryList = $fulltext =~ m/(http:\/\/data\.worldbank\.org\/country\/.*?")/gi){ foreach $country(@countryList){ #Remove " at the end of link $country=~s/\"//gi; print "\n" . $country; #Retrieve each country profile's XML DB file my $page = $agent1->get("$country"); my $fulltext = $page->decoded_content(); my $XML_DB = ""; my @countryXMLDBList; if (@countryXMLDBList = $fulltext =~ m/(http:\/\/data\.worldbank\.org\/sites\/default\/files\/countries\/en\/.*?\.xml)/gi){ foreach $XML_DB(@countryXMLDBList){ my $page = $agent1->get("$XML_DB"); my $fulltext = $page->decoded_content(); #print $fulltext; #Use XML XPath parser to find elements related to death rate my $xp = XML::XPath->new($fulltext); #my $xp = XML::XPath->new("afghanistan_en.xml"); my $nodeSet = $xp->find("//*"); if (!$nodeSet->isa('XML::XPath::NodeSet') || $nodeSet->size() == 0) { #No match found print "\nMatch not found!"; exit; } else { foreach my $node ($nodeSet->get_nodelist){ print "\n" . $node->find('country')->string_value; print "\n" . $node->find('indicator')->string_value; print "\n" . $node->find('year')->string_value; print "\n" . $node->find('value')->string_value; exit; } } } #Build line graph based on death rate statistics and output some image file format } } } I am also looking into using the xpath expression "following-sibling", but not sure how to use it correctly. For example, I have the following set of XML data where I am only interested in pulling siblings directly after the indicator for just death rate data. <data> <country id="AFG">Afghanistan</country> <indicator id="SP.DYN.CDRT.IN">Death rate, crude (per 1,000 people)</indicator> <year>2006</year> <value>20.3410000</value> </data> - <data> <country id="AFG">Afghanistan</country> <indicator id="SP.DYN.CDRT.IN">Death rate, crude (per 1,000 people)</indicator> <year>2007</year> <value>19.9480000</value> </data> - <data> <country id="AFG">Afghanistan</country> <indicator id="SP.DYN.CDRT.IN">Death rate, crude (per 1,000 people)</indicator> <year>2008</year> <value>19.5720000</value> </data> - <data> <country id="AFG">Afghanistan</country> <indicator id="IC.EXP.DOCS">Documents to export (number)</indicator> <year>2005</year> <value>7.0000000</value> </data> - <data> <country id="AFG">Afghanistan</country> <indicator id="IC.EXP.DOCS">Documents to export (number)</indicator> <year>2006</year> <value>12.0000000</value> </data> - <data> <country id="AFG">Afghanistan</country> <indicator id="IC.EXP.DOCS">Documents to export (number)</indicator> <year>2007</year> <value>12.0000000</value> </data> Any help would be much appreciated!!!

    Read the article

  • Problem with evaluating XPath expression in Java

    - by JSteve
    Can somebody help me find the mistake I am doing in evaluating following XPath expression? I want to get all "DataTable" nodes under the node "Model" in my xml through XPath. Here is my XML doc: <?xml version="1.0" encoding="UTF-8"?> <Root> <Application> <Model> <DataSet name="ds" primaryTable="Members" openRows="1"> <DataTable name="Members" openFor="write"> <DataColumn name="id" type="String" mandatory="true" primaryKey="true" valueBy="user"/> <DataColumn name="name" type="String" mandatory="true" valueBy="user"/> <DataColumn name="address" type="String" mandatory="false" valueBy="user"/> <DataColumn name="city" type="String" mandatory="false" valueBy="user"/> <DataColumn name="country" type="String" mandatory="false" valueBy="user"/> </DataTable> </DataSet> </Model> <View> <Composite> <Grid> <Label value="ID:" row="0" column="0" /> <Label value="Name:" row="1" column="0" /> <Label value="Address:" row="2" column="0" /> <Label value="City:" row="3" column="0" /> <Label value="Country:" row="4" column="0" /> <TextField name="txtId" row="0" column="1" /> <TextField name="txtName" row="1" column="1" /> <TextField name="txtAddress" row="2" column="1" /> <TextField name="txtCity" row="3" column="1" /> <TextField name="txtCountry" row="4" column="1" /> </Grid> </Composite> </View> </Application> </Root> Here the Java code to extract required node list: try { DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); domFactory.setIgnoringComments(true); domFactory.setIgnoringElementContentWhitespace(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); Document dDoc = builder.parse("D:\TEST\myFile.xml"); XPath xpath = XPathFactory.newInstance().newXPath(); NodeList nl = (NodeList) xpath.evaluate("//Model//DataTable", dDoc, XPathConstants.NODESET); System.out.println(nl.getLength()); }catch (Exception ex) { System.out.println(ex.getMessage()); } There is no problem in loading and parsing xml file and I can see correct nodes in dDoc. Problem is with xpath that returns nothing on evaluating my expression. I tried many other expressions for testing purpose but every time resulting NodeList "nl" does not have any item

    Read the article

  • PHP simplexml and xpath

    - by FFish
    I have an XML file like this: <?xml version="1.0" encoding="UTF-8"?> <gallery> <album tnPath="tn/" lgPath="imm/" fsPath="iml/" > <img src="001.jpg" /> <img src="002.jpg" /> </album> </gallery> I am reading the file with: $xmlFile = "xml.xml"; $xmlStr = file_get_contents($xmlFile . "?" . time()); $xmlObj = simplexml_load_string($xmlStr); Now I am rebuilding the XML file and would like to save the album node with it's attributes in a var I was thinking with xpath: // these all return arrays with the images... // echo $xmlObj->xpath('/gallery/album@tnPath'); // echo $xmlObj->xpath('//album[@tnPath]'); // echo $xmlObj->xpath('//@tnPath'); But that doesn't seem to work? Any help?

    Read the article

  • Is this a valid XPath expression?

    - by sid_com
    Is this xpath a valid XPath expression? (It does what it should ). #!/usr/bin/env perl use strict; use warnings; use 5.012; use XML::LibXML; my $string =<<EOS; <result> <cd> <artists> <artist class="1">Pumkinsingers</artist> <artist class="2">Max and Moritz</artist> </artists> <title>Hello, Hello</title> </cd> <cd> <artists> <artist class="3">Green Trees</artist> <artist class="4">The Leons</artist> </artists> <title>The Shield</title> </cd> </result> EOS #/ my $parser = XML::LibXML->new(); my $doc = $parser->load_xml( string => $string ); my $root = $doc->documentElement; my $xpath = '/result/cd[artists[artist[@class="2"]]]/title'; my @nodes = $root->findnodes( $xpath ); for my $node ( @nodes ) { say $node->textContent; }

    Read the article

  • How do you query namespaces with PHP/XPath/DOM

    - by Alsbury
    I am trying to query an XML document that uses namespaces. I have had success with xpath without namespaces, but no results with namespaces. This is a basic example of what I was trying. I have condensed it slightly, so there may be small issues in my sample that may detract from my actual problem. Sample XML: <?xml version="1.0"?> <sf:page> <sf:section> <sf:layout> <sf:p>My Content</sf:p> </sf:layout> </sf:section> </sf:page> Sample PHP Code: <?php $path = "index.xml"; $content = file_get_contents($path); $dom = new DOMDocument($content); $xpath = new DOMXPath($dom); $xpath->registerNamespace('sf', "http://developer.apple.com/namespaces/sf"); $p = $xpath->query("//sf:p", $dom); My result is that "p" is a "DOMNodeList Object ( )" and it's length is 0. Any help would be appreciated.

    Read the article

  • How to set an empty value using XPath?

    - by Ricardo
    Using this xml example: <templateitem itemid="5"> <templateitemdata>%ARN%</templateitemdata> </templateitem> <templateitem itemid="6"> <templateitemdata></templateitemdata> </templateitem> I am using XPath to get and set Node values. The code I am using to get the nodes is: private static Node ***getNode***(Document doc, String XPathQuery) throws XPathExpressionException { XPath xpath = XPathFactory.newInstance().newXPath(); XPathExpression expr = xpath.compile(XPathQuery); Object result = expr.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; if(nodes != null && nodes.getLength() >0) return nodes.item(0); throw new XPathExpressionException("No node list found for " + XPathQuery); } To get %ARN% value: "//templateitem[@itemid=5]/templateitemdata/text()" and with the getNode method I can get the node, and then call the getNodeValue(). Besides getting that value, I would like to set templateitemdata value for the "templateitem[@itemid=6]" since its empty. But the code I use can't get the node since its empty. The result is null. Do you know a way get the node so I can set the value?

    Read the article

  • XPath ordered priority attribute search

    - by user94000
    I want to write an XPath that can return some link elements on an HTML DOM. The syntax is wrong, but here is the gist of what I want: //web:link[@text='Login' THEN_TRY @href='login.php' THEN_TRY @index=0] THEN_TRY is a made-up operator, because I can't find what operator(s) to use. If many links exist on the page for the given set of [attribute=name] pairs, the link which matches the most left-most attribute(s) should be returned instead of any others. For example, consider a case where the above example XPath finds 3 links that match any of the given attributes: link A: text='Sign In', href='Login.php', index=0 link B: text='Login', href='Signin.php', index=15 link C: text='Login', href='Login.php', index=22 Link C ranks as the best match because it matches the First and Second attributes. Link B ranks second because it only matches the First attribute. Link A ranks last because it does not match the First attribute; it only matches the Second and Third attributes. The XPath should return the best match, Link C. If more than one link were tied for "best match", the XPath should return the first best link that it found on the page.

    Read the article

  • Problem with Xpath PHP

    - by user294597
    Im tring to access some links through Google using xpath. The below does works fine and all the links are shown. $query = $xpath->evaluate("/html/body//a"); for ($x=0 ; $x < $query -> length; $x++) { $href=$query->item($x); $url=$href->getAttribute('href'); echo $url."<br>"; } But when i try the below xpath nothing is shown..Im sure that the xpath is correct coz its evaluated and the result is shown in xpather.. /html/body[@id='gsr']/div[@id='cnt']/div[@id='res']/div[1]/ol/li/div//cite for ($x=0 ; $x < $query -> length; $x++) { $href=$query->item($x); $url=$href->getAttribute('cite'); echo $url."<br>"; } can some one please tell me what i am doin wrong? any help will be much appreciated

    Read the article

  • XPath doesn't work as desired in C#

    - by Nick Brooks
    My code doesn't return the node XmlDocument xml = new XmlDocument(); xml.InnerXml = text; XmlNode node_ = xml.SelectSingleNode(node); return node_.InnerText; // node_ = null !!!!!!!!!!!!!!!!!!! I'm pretty sure my XML and Xpath are correct My Xpath : /ItemLookupResponse/OperationRequest/RequestId' My XML : <?xml version="1.0"?> <ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05"> <OperationRequest> <RequestId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx</RequestId> .......(the rest of the xml is irrelevant).......... The node my XPath returns is always null for some reason. Can someone help?

    Read the article

  • XPath to find ancestor node containing CSS class

    - by Juan Mendes
    I am writing some Selenium tests and I need to be able to find an ancestor of a WebElement that I have already found. This is what I'm trying but is returning no results // checkbox is also a WebElement WebElement container = checkbox.findElement(By.xpath( "current()/ancestor-or-self::div[contains(@class, 'x-grid-view')]") ); The image below shows the div that I have selected highlighted in dark blue and the one I want to find with an arrow pointing at it. UPDATE Tried prestomanifesto's suggestion and got the following error [cucumber] org.openqa.selenium.InvalidSelectorException: The given selector ./ancestor::div[contains(@class, 'x-grid-view']) is either invalid or does not result in a WebElement. The following error occurred: [cucumber] [InvalidSelectorError] Unable to locate an element with the xpath expression ./ancestor::div[contains(@class, 'x-grid-view']) because of the following error: [cucumber] [Exception... "The expression is not a legal expression." code: "51" nsresult: "0x805b0033 (NS_ERROR_DOM_INVALID_EXPRESSION_ERR)" location: "file:///C:/Users/JUAN~1.MEN/AppData/Local/Temp/anonymous849245187842385828webdriver-profile/extensions/fxdriv Update 2 Really weird, even by ID is not working [cucumber]       org.openqa.selenium.NoSuchElementException: Unable to locate element:{"method":"xpath","selector":"./ancestor::div[@id='gridview-1252']"}

    Read the article

  • Dynamically generate XPath expression using XML data

    - by iHeartGreek
    Hi! I would like to dynamically create XPath expressions in an XSL determined by data in an XML file. (i.e. the XML data is "concatenated" to create an XPath expression). Example of XML data: AAA BBB CCC Example of how I would like the XPath expression to look like: //AAA | //BBB | //CCC And this dynamic generation needs to be done in an XSL file. I am fairly new to XSL (and family) and would appreciate some general direction on how to tackle this problem. Thanks!

    Read the article

  • XPATH - Select all child nodes with a specific attribute

    - by David
    Hi, what would be the xpath for the following: Find all child nodes with a specific attibute value but starting from a node with a specific attribute value. This is kind of related to a question I posted earlier about parsing and rdf xml file - I thought I had solved it but not quite yet. For example I am trying to parse and grab all of the rdf:about attribute values. I have this working fine. I need to add the following condition though - parsing needs to start after a specific rdf:about value is found. I am working in php and and using DomDocument and am using the following xpath query: $xpath-query('//@rdf:about') - it is finding all rdf:about attributes fine. I need to extend this to only find thos attributes that come after the node who rdf:about attribute is equal to something. Hope this makes sense.

    Read the article

  • Xpath to get the 2nd url with the matching text in the href tag

    - by Blankman
    A html page has paging links, 1 set at the top of the page and another on the bottom of the page. Using HtmlUnit, I am currently getting the HtmlAnchor on the page using getByAnchorText("1"); There is a problem in some of the links on the top, so I want to reference the bottom links using XPath. nextPageAnchor = (HtmlAnchor) page.getByXPath(""); How can I reference the 2nd link on the page, with using xpath? I need to reference the link using the AnchorText, so a link like: <a href="....">33</a> The href has random text, and is a javascript function so I have no idea what it will be. Is this possible with xpath?

    Read the article

  • Xpath and parameters

    - by Daniel
    I am relatively new to XSL and I think this is a basic question. So I better get my apologies in early! Basically, I would like to use a value-of function. This will be in a template and I would like to pass part of the xpath as a parameter. <xsl:variable name="TEST_VAR">"h:elementA/elementB"</xsl:variable> ... and then use the variable (or passed in param) as all (or part) of the xpath: <xsl:element name="transformedElement"><xsl:value-of select=$TEST_VAR/></xsl:element> I would really like to have the xpath to be a mixture of string literals and the vlue of TEST_VAR. Thanks in advance

    Read the article

  • Multipart question: Mapping between xml and Json using xpath

    - by scope-creep
    This is a JSON mapping question from a json newbie. Currently i'm reading xml using xpath in C#, and the xpath are returning either the element or attribute node values, as is the schema's want. I want to write out some of the returned values into a json formatted file. I know i can faneigle the xpath expression to return the element or attribute names, so I can built the appropriate name/value json structure before serialization, but I was I'm wondering if their was some way of doing a mapping between the xml and json. The xml schema is fairly big, so potentially the mapping will be big, meaning a ton of cumbersom coding to make it work. Is their any way to automap somehow? I was planning to use json.net, which seems flexible enough, although their may be a better approach. Any help would be appreciated. Bob.

    Read the article

  • GET syntax in xpath

    - by David Doria
    I am trying to use a parameter that I pass to the page in an xpath query. This works properly (hard coded): <?php $xml = simplexml_load_file("bookstore.xml"); $res = $xml->xpath("/bookstore/book[title = 'Everyday Italian']"); echo $res[0]->author ?> but I pass the parameter with: bookdetails.php?title="Everyday Italian" and then do: <?php $xml = simplexml_load_file("bookstore.xml"); $res = $xml->xpath("/bookstore/book[title = $_GET['title']]"); echo $res[0]->author ?> I get a 500 error. Any thoughts? Thanks, David

    Read the article

  • How to give xpath expression in java using axiom

    - by user1811206
    <resource name="cde.xml" status="updated" isCollection="false"> <mediaType>xml</mediaType> <creator>admin</creator> <createdTime>1352783477964</createdTime> <lastUpdater>admin</lastUpdater> <lastModified>1352783477964</lastModified> <description /> <version>0</version> <content>ZGFza2QgbGQgbGt2Zmx3ZGFzamQgYWRsa2ogYWxramRrbGEgamQK </content> </resource> i want to catch nodes which are having status using xpath here is the xpath expression other part of the code is correct. I have problem with xpath expression AXIOMXPath xpathExpression = new AXIOMXPath ( "//resourse[@name]");

    Read the article

  • I can't use dashes in XPATH on iphone using libxml2

    - by user249488
    I'm trying to parse HTML data using KissXML for iphone. I've noticed that I can't have dashes in the id() tag, otherwise it won't evaluate. For example, if I'm trying to get the element at I would do id("foo") However, if I try to get at element , and I try id("foo-bar") the libxml2 XPATH engine doesn't seem to return anything. It works using the XPATH check for firefox, though. Anyone run into this issue and know of a reason why it's happening or have a workaround (besides using the absolute XPATH path?)

    Read the article

  • JAVA: Build XML document using XPath expressions

    - by snoe
    I know this isn't really what XPath is for but if I have a HashMap of XPath expressions to values how would I go about building an XML document. I've found dom-4j's DocumentHelper.makeElement(branch, xpath) except it is incapable of creating attributes or indexing. Surely a library exists that can do this? Map xMap = new HashMap(); xMap.put("root/entity/@att", "fooattrib"); xMap.put("root/array[0]/ele/@att", "barattrib"); xMap.put("root/array[0]/ele", "barelement"); xMap.put("root/array[1]/ele", "zoobelement"); would result in: <root> <entity att="fooattrib"/> <array><ele att="barattrib">barelement</ele></array> <array><ele>zoobelement</ele></array> </root>

    Read the article

  • Parsing HTML with XPath and PHP

    - by Peter
    Is there a way (using XPath and PHP) to do the following (WITHOUT external XSLT files)? Remove all tables and their contents Remove everything after the first h1 tag Keep only paragraphs (INCLUDING their inner HTML (links, lists, etc)) I received an XSLT answer here, but I'm looking for XPATH queries that don't require external files. Currently, I've got the HTML in question loaded into a SimpleXmlElement via: $doc = @DOMDocument::loadHTML($xml); $data = simplexml_import_dom($doc); Now I need help with: $data = $data->xpath('??????'); Been working with this one for several days to no avail. I really appreciate the help. Edit: I don't particularly care what's inside the paragraphs, as I can use strip_tags to eliminate what I don't want. All I need to do is to isolate the paragraphs from the rest of the source. I suppose a more specific, accurate requirement would be this: Return only paragraphs (and their html contents) that aren't contained in tables, and only before the first h1 tag

    Read the article

  • Express XPath as an expression tree

    - by 47d_
    If I have an XPath query like NodeA/NodeB[@WIDTH and not(@WIDTH="20")] | NodeC[@WIDTH and not(@WIDTH="20")]/NodeD Is there any API available to visualize this XPath query as a stack of atomic expressions, something like (following is generic) Get results of NodeA, call it "first set" Get results of NodeB from "first set" Filter where [@WIDTH and not(@WIDTH="20")] Filter NodeD, call this "node d for B" Get results of NodeC from "first set" Filter where [@WIDTH and not(@WIDTH="20")] Filter NodeD, call this "node d for C" Combine "node d for B" and "node d for C" I am trying to see if we can convert the XPath expression into custom expression which is close to english and vice versa. If no API is available, what would be the best approach? Thanks in advance.

    Read the article

  • XPath to compare two distinct attributes of two elements

    - by user364902
    Suppose I have this XML: <x> <e s="1" t="A"/> <e s="2" t="A"/> <e s="1" t="B"/> </x> Is there any way to write an xpath to find any nodes named "e" which have the same value of @s as another node but a different value of @t for the same node. The first part is easy: //e[@s = //e/@s] as is the second part: //e[@t != //e[@t]] But I don't see any way to construct an xpath that compares two different attributes for two separate elements "e". Is there a way within the xpath syntax, or is it hopeless?

    Read the article

  • Xpath Injection detection Tool

    - by preeti
    Hi, I am working on xpath Injection attack, so looking forward to build a tool to detect xpath Injection Tool in a website.Is web crawling and scanning be used for this? What can be the Logic to detect it? Are there any open source tools to detect it, so that i can develop it in Java by looking at logic used in that code. Thank You.

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >