Zeilenumbrüche (\n) mittels concat() in XPath?
So, ich habe eine XML-Dokument der Mitarbeiter in meinem system:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<couriersystem title="System"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd">
<!-- snip -->
<employees>
<employee eid="1">
<nin>AZ123518D</nin>
<firstname>Peter</firstname>
<lastname>Smith</lastname>
<gender>Male</gender>
<dob>1994-02-11</dob>
<email>[email protected]</email>
<address>
119, London Street, Nidrie, F57 8NE
</address>
<tel>07005748900</tel>
<salary>30526</salary>
<empbranch bid="1" />
<supervisor sid="1" />
</employee>
<employee eid="2">
<nin>CN174869F</nin>
<firstname>Jennifer</firstname>
<lastname>Black</lastname>
<gender>Male</gender>
<dob>1984-12-24</dob>
<email>[email protected]</email>
<address>
161, South Road, Nidrie, W79 8WG
</address>
<tel>07555111222</tel>
<salary>40576</salary>
<empbranch bid="2" />
<supervisor sid="1" />
</employee>
<employee eid="3">
<nin>ET127654M</nin>
<firstname>Aaron</firstname>
<lastname>Jones</lastname>
<gender>Male</gender>
<dob>1968-03-15</dob>
<email>[email protected]</email>
<address>
66, High Road, Yoker, Q47 4SR
</address>
<tel>07856471267</tel>
<salary>30526</salary>
<empbranch bid="3" />
<supervisor sid="1" />
</employee>
<employee eid="4">
<nin>GC765238A</nin>
<firstname>Alistair</firstname>
<lastname>Smith</lastname>
<gender>Male</gender>
<dob>1976-11-26</dob>
<email>[email protected]</email>
<address>
109, West Plaza, Clydebank, G55 8RC
</address>
<tel>07000123123</tel>
<salary>25400</salary>
<empbranch bid="4" />
<supervisor sid="1" />
</employee>
<employee eid="5">
<nin>HP146854D</nin>
<firstname>Emma</firstname>
<lastname>Reynolds</lastname>
<gender>Male</gender>
<dob>1995-05-05</dob>
<email>[email protected]</email>
<address>
57, Scott Street, Aberdeen, O75 2KS
</address>
<tel>07625361536</tel>
<salary>25400</salary>
<empbranch bid="5" />
<supervisor sid="7" />
</employee>
<!-- snip -->
</employees>
<!-- snip -->
</couriersystem>
Und ich habe die folgenden XPath abrufen alle Mitarbeiter details von Ihren Vorgesetzten:
//employee[supervisor/@sid='1']/concat('Name: ', concat(firstname/text(), ' ', lastname/text(), '\nGender: ', gender/text(), '\nD.O.B: ', dob/text()))
Aber es zeigt nur einen Mitarbeiter aus dem rest von Ihnen, und die \n
Zeichen, die zeigen, wie gut.
Wie kann ich dieses Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommen
\n
interpretiert werden, dieconcat()
in XPath verwendencodepoints-to-string(10)
[credit: @madcrazydrumma]:denen werden dann wieder die Ergebnisse wie folgt:
Kleine Anmerkung: Ihr basic XPath 2.0-Ausdruck stellte sich heraus, gut zu sein. Wir entdeckten in den Kommentaren, die Ergebnisse falsch waren aufgrund der Einschränkungen von der Seite, xpathtester.com/xpath. Verwenden videlibri.sourceforge.net/cgi-bin/xidelcgi statt für online-XPath 2.0 testen.
codepoints-to-string(10)
um eine neue Zeile hinzuzufügen, in XPath 2.0. Sie können aktualisieren Sie den code, wenn Sie möchten, um anderen zu zeigen, ich danke Ihnen für die neue Website!Gut, getestet habe ich Ihr XPath-Ausdruck mit XSLT und dem Ausgang enthält 4 Einträge, wie Sie gewünscht wird:
Meine XSLT war:
Das Ergebnis ist alles in einer Zeile text:
Wenn Sie möchten, um die Ausgabe ein wenig mehr formatiert als die oben genannten, versuchen Sie, diese Ausdrücke welcher
space
Zeichen an den entsprechenden stellen:Ist die Folge:
P. S.: Ist "Jennifer Schwarz" eine Transsexuelle? Denn Sie hat einen weiblichen Namen und einen männlichen Geschlecht 😉
mitcodepoints-to-string(10)
und fasse die Ausdrücke und Ihre getan.