Announcement

Collapse
No announcement yet.

XPath ohne doc('') sondern direkt den XML-String verwenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XPath ohne doc('') sondern direkt den XML-String verwenden

    Hallo,

    ich habe momentan die folgende XQuery

    for $x in doc('test.xml')//root/test/text() return string($x)
    und bekomme entsprechend den Text des root/test-Elements zurück.

    Wie stelle ich es nun an - ich bin weiß gott nicht fündig geworden -, dass ich nicht mehr den Dokumentennamen, sondern direkt den XML-Inhalt verwenden kann.

    Es würde also in etwa wie folgt aussehen ( das Beispiel funktioniert natürlich nicht, sollte lediglich als Pseudo-Code verstanden werden )

    for $x in '<root><test>text</test></root>'//root/test/text() return string($x)
    Ich hoffe mir kann geholfen werden



    Gruß, Tom

  • #2
    Mit XQuery kannst du XML direkt literal verwenden:
    Code:
    let $root := <root><test>text</test></root>
    for $x in $root/test return string($x)
    Eine Zeichenkette als XML zu parsen, ist aber meines Wissens nur mit einer Erweiterungsfunktion möglich, wie z.b. http://www.saxonica.com/documentatio...ions/parse.xml, bzw. kommt in XQuery 3.0 (der nächsten Version) http://www.w3.org/TR/xpath-functions-11/#func-parse

    Als Ergänzung. Die Variable braucht man nicht unbedingt, es funktioniert auch
    Code:
    for $x in <root><test>text</test></root>/test return string($x)
    oder
    Code:
    for $x in document{<root><test>text</test></root>}/root/test return string($x)
    Zuletzt editiert von Martin Honnen; 10.11.2010, 19:55. Reason: Ergänzung

    Comment


    • #3
      ARGH! Ich könnte mir in den Hintern beißen!

      for $x in <root><test>text</test></root>//root/test return string($x)
      So hatte ich es... Und was fällt auf? Bloß der //root fehlt! Das wusste ich nicht!

      Ich danke dir vielmals für deine Hilfe!

      Comment

      Working...
      X