XQuery Problem mit namespaces



  • Hallo, ich spiele gerade mit der XQuery implementierung von QT.
    Ich habe einen AtomFeed, welchen ich als test nach den Titeln durchsuchen will:

    <feed xmlns='http://www.w3.org/2005/Atom'>;
    <entry>
    <title>
    <.../>

    Nun habe ich meine XQuery Abfrage:

    <ul>
    {
    for xindoc(x in doc(inputDocument)/feed/entry/title
    order by x return

  • {x}</li>
    }
    </ul>

    Eigentlich ganz einfach denkt man ja, aber es klappt nur wenn ich aus feed das xmlns= entferne.
    auch xmlns nodes verweigert er (z.b. <foo:dimension attr1=""/>).
    **
    declare default element namespace "http://www.w3.org/2005/Atom";**
    löst das Problem. 🙂

    Allerdings habe ich jetzt im Output auch in den elementen xmlns="..." drin, wie kann ich das abstellen?
    Ich möchte da möglichst wenig markup, also auch keine xmlns="", die werden nicht benötigt an der Stelle.

    phlox



  • Hi,

    probiere es mal so:

    xquery version "1.0";
    
    declare namespace foo = "http://www.w3.org/2005/Atom"; 
    
    <ul> 
    { 
    	for $x in doc($inputDocument) //foo:title 
    	order by $x 
    	return <li>{data($x)}</li> 
    } 
    </ul>
    

    smilingman


  • Anmelden zum Antworten