// More about how xpath works can be found here

http://www.w3schools.com/xml/xsl_functions.asp


// concat
concat(/npexchange/article/organization_id/@shortName, /npexchange/article/job_id/@id)

//  substring/join
substring(string-join(/xlibris/metadata/meta[@name="PDF_name"]/@value,''),1, 2)


// if/else
if(string-length(string-join(/xlibris/metadata/meta[@name="Pubdate"]/@value,'')) > 7) then
    (concat(substring(string-join(/xlibris/metadata/meta[@name="Pubdate"]/@value,''), 1, 4), "-", substring(string-join(/xlibris/metadata/meta[@name="Pubdate"]/@value,''), 5, 2), "-", substring(string-join(/xlibris/metadata/meta[@name="Pubdate"]/@value,''), 7, 2), "T12:00:00Z"))
else
    (/xlibris/metadata/meta[@name="Pubdate"]/@value)

 /npexchange/article/articleparts/articlepart[article_part_type_id/@id='1']/bylines/byline/ (if (user_id!='NULL')  then
     (concat('[byline',' name="',user_id/@firstName,' ',user_id/@lastName,'" ','phone="',user_id/@phone,'" ','mobile="',user_id/@cellular,'" ','id="',user_id/@id,'" ', 'email="',user_id/@email,'"]'))
 else (
      if (userinfo/userdata[firstname!= 'NULL']) then
           (concat('[custombyline ','name="',userinfo/userdata/firstname/text(),' ',userinfo/userdata/lastname/text(),'" phone="',userinfo/userdata/phone/text(),'" mobile="',userinfo/userdata/cellular/text(),'" email="',userinfo/userdata/email/text(),'"]'))
      else ()))


// normalize-space
/npexchange/article/articleparts/articlepart//article_part_type_id[@id='1']/ancestor::articlepart/concat(data/*:npdoc/*:dateline/normalize-space(string-join((*:p/text() | *:p/*:b/text()), " ")),'')