Code Monkey home page Code Monkey logo

Comments (1)

jmdavis avatar jmdavis commented on June 25, 2024

The path is from the start element that's currently at the front of the range. In your last example there, result starts on <carrot>. The only child element that <carrot> has is <foo>. So, any path from <carrot> must start with "foo". If you gave the path "foo/bar/ban", then your last line would print

foo: ban

Right now, what's happening is that because you gave an invalid path, skipToPath returns an empty range, and foo.empty is true. So, it's not actually valid to call foo.front at that point. It just so happens that front returns the end tag, because front doesn't assert that it wasn't called when the range was empty, and the end tag was the last data it had before the end of the range was reached. If foo.front asserted that the range was not empty, then you'd be getting an assertion failure when you attempted to call foo.front. After you call skipToPath, you should be checking whether the return value is empty so that you know whether it actually found the path that you requested. And for the path to be correct in that last example, you would either have to pop off the first element so that you were on <foo> before calling skipToPath("bar/ban"), or you would have to call skipToPath("foo/bar/ban").

For your real data, for "protocolLot/applications" to be the right path, <ns2:fcsProtocolEF3 schemeVersion="8.1"> would have to be the first element in the range, whereas I'm guessing that you were on its parent start tag <ns2:export ...>, which would mean that the path would need to be "ns2:fcsProtocolEF3/protocolLot/applications".

from dxml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.