Setting predicate based on subquery(path) don't give result
Closed this issue ยท 0 comments
MindTooth commented
Hi,
Been using the library for my exams, and I love it very much. ๐
However, I've encountered an issue where I've set a predicate based on an e.g. id
, and it don't result in a result. But it works just fine using xmllint --xpath
.
Query
/StudentSubmissions/Department/Students/Student[@studentNo = /StudentSubmissions/Department/Courses/Course/Assignments[@studyYear = '2017']/Assignment[@no = '1' and not(@no = '6')]/Submission/@student]
xmllint result
<Student studentNo="1">
<FamilyName>Student</FamilyName>
<GivenName>Another</GivenName>
</Student>
Code
package main
import (
"os"
"github.com/antchfx/xmlquery"
)
func main() {
f, err := os.Open("###FILE###")
if err != nil {
panic(err)
}
doc, err := xmlquery.Parse(f)
if err != nil {
panic(err)
}
for _, n := range xmlquery.Find(doc, "/StudentSubmissions/Department/Students/Student[@studentNo = /StudentSubmissions/Department/Courses/Course/Assignments[@studyYear = '2017']/Assignment[@no = '1' and not(@no = '6')]/Submission/@student]") {
fmt.Printf("%s\n", n.OutputXML(true))
}
}
XML
<?xml version="1.0"?>
<!DOCTYPE StudentSubmissions SYSTEM "StudentSubmissions.dtd">
<StudentSubmissions>
<Department shortName="IDI">
<Name>Computer Science</Name>
<Students cycle="B">
<Student studentNo="1">
<FamilyName>Student</FamilyName>
<GivenName>Another</GivenName>
</Student>
</Students>
<Courses cycle="B">
<Course>
<Code>IMT2571</Code>
<Title>Data Modelling and Database Systems</Title>
<Assignments studyYear="2017" min="5" max="6">
<Assignment no="1">
<Title>Database Application</Title>
<Description>Develop and test database application.</Description>
<Deadline>2017-09-10</Deadline>
<Submission student="1" date="2017-09-09">
<Outcome>1</Outcome>
<Comments>Well done!</Comments>
</Submission>
</Assignment>
<Assignment no="2">
<Title>SQL</Title>
<Description>Insert, query & modify database data.</Description>
<Deadline>2017-09-24</Deadline>
<Submission student="1" date="2017-10-02"/>
</Assignment>
<Assignment no="3">
<Title>Conceptual Modelling</Title>
<Description>Designing a conceptual (UML) model.</Description>
<Deadline>2017-10-08</Deadline>
</Assignment>
</Assignments>
</Course>
<Course>
<Code>IMT2261</Code>
<Title>Information Structures and Database Systems</Title>
<Assignments studyYear="2017" min="6" max="7"> </Assignments>
</Course>
</Courses>
<Courses cycle="M">
<Course>
<Code>IMT4886 Applied Computer Science Project</Code>
<Title/>
</Course>
</Courses>
</Department>
</StudentSubmissions>