public String getVCardProperty(String username, String name) {
        String answer = null;
        Element vCardElement = getOrLoadVCard(username);
        if (vCardElement != null) {
            // A vCard was found for this user so now look for the correct element
            Element subElement = null;
            StringTokenizer tokenizer = new StringTokenizer(name, ":");
            while (tokenizer.hasMoreTokens()) {
                String tok = tokenizer.nextToken();
                if (subElement == null) {
                    subElement = vCardElement.element(tok);
                }
                else {
                    subElement = subElement.element(tok);
                }
                if (subElement == null) {
                    break;
                }
            }
            if (subElement != null) {
                answer = subElement.getTextTrim();
            }
        }
        return answer;
    }
Returns the user's vCard information for a given vcard property name. If the property
has no defined text then an empty string will be returned. However, if the property
does not exist then a {@code null} value will be answered. Advanced user systems can
use vCard information to link to user directory information or store other relevant
user information.
<p>
Note that many elements in the vCard may have the same path so the returned value in that
case will be the first found element. For instance, "ADR:STREET" may be present in
many addresses of the user. Use {@link #getVCard(String)} to get the whole vCard of
the user.</p>

@param username The username of the user to return his vCard property.
@param name     The name of the vcard property to retrieve encoded with ':' to denote
                the path.
@return The vCard value found
xmppserver/src/main/java/org/jivesoftware/openfire/vcard/VCardManager.java