通过SPI REST使用唯一标识获得ibm门户页面信息

直接贴代码了, 具体的和ibm 门户完全关联,使用atom 。主要是获得元素的属性值的时候遇到了一些问题,本来使用xpath 的基本形式(/feed/entry/tile/@type)没有问题的,但是/feed/entry/id的属性使用了命名空间,按照上面的模式都不成功,最后只好使用qname形式的参数获得属性值,这基本花了半天的时间才解决。
写道
package test;

import java.io.InputStream;
import java.net.URISyntaxException;

import javax.xml.namespace.QName;

import org.apache.abdera.Abdera;
import org.apache.abdera.model.Document;
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.parser.Parser;
import org.apache.abdera.protocol.client.AbderaClient;
import org.apache.abdera.protocol.client.ClientResponse;
import org.apache.abdera.xpath.XPath;
import org.apache.commons.httpclient.UsernamePasswordCredentials;

public class NewTesta {

/**
* @param args
*/
public static void main(String[] args) {
NewTesta newTest = new NewTesta();
try {
newTest.getPageInfo();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void getPageInfo() throws Exception {

Abdera abdera = new Abdera();
AbderaClient client = new AbderaClient(abdera);
client.usePreemptiveAuthentication(true);
try {
client.addCredentials("http://127.0.0.1:10040/wps/myportal", null,
null, new UsernamePasswordCredentials("admin", "password"));
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// 替换为具体的唯一标识 oid:6_CGAH47L00O2V002N5SQ0US3867
ClientResponse response1 = client
.get("http://127.0.0.1:10040/wps/mycontenthandler?uri=cm:oid:6_CGAH47L00O2V002N5SQ0US3867");

Parser parser = Abdera.getNewParser();

InputStream in = response1.getInputStream();
Document<Feed> doc = parser.parse(in);
Feed feed = doc.getRoot();

Entry entry = feed.getEntries().get(0);

System.out.println(entry.getTitle());
System.out.println(entry.getTitleType());
Element theId = entry.getElements().get(1);

XPath xpath = abdera.getXPath();
System.out.println(feed.toString());
org.apache.abdera.parser.stax.FOMIRI o = (org.apache.abdera.parser.stax.FOMIRI) xpath
.selectSingleNode("/a:feed/a:entry/a:id", feed);
QName newQname = new QName(
"http://www.ibm.com/xmlns/prod/websphere/portal/v6.0.1/portal-model",
"uniquename", "portal");
System.out.println(o.getAttributeValue(newQname));

}

}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值