2

似乎是一个基本问题,但我在任何地方都找不到。基本上我有一个 XML 链接列表,如下所示:(全部在一个字符串中)

我已经有了包含所有 XML 的“字符串”变量。只需提取 HTML 字符串。

<?xml version="1.0" encoding="UTF-8"?>
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
<photo>
    <src_small>http://photos-a.ak.fbcdn.net/hphotos-ak-ash4/486603_10151153207000351_1200565882_t.jpg</src_small>
</photo>
<photo>
  <src_small>http://photos-c.ak.fbcdn.net/hphotos-ak-ash3/578919_10150988289678715_1110488833_t.jpg</src_small>
</photo>

我想将它们转换成一个数组列表,所以像 URLArray[0] 这样的东西将是第一个地址作为字符串。

谁能告诉我该怎么做谢谢?

4

3 回答 3

5
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = factory.newDocumentBuilder();
  InputSource is = new InputSource( new StringReader( xmlString) );
  Document doc = builder.parse( is );

  XPathFactory factory = XPathFactory.newInstance();
  XPath xpath = factory.newXPath();
  xpath.setNamespaceContext(new PersonalNamespaceContext());
  XPathExpression expr = xpath.compile("//src_small/text()");

  Object result = expr.evaluate(doc, XPathConstants.NODESET);
  NodeList nodes = (NodeList) result;
  List<String> urls = new ArrayList<String>();
  for (int i = 0; i < nodes.getLength(); i++) {
      urls.add (nodes.item(i).getNodeValue());
      System.out.println(nodes.item(i).getNodeValue()); 
  }
于 2012-08-06T17:42:06.187 回答
3

你是对的,应该有一些其他资源可以帮助你。也许您的搜索只是没有使用正确的关键字。

你基本上有2个选择:

  1. 使用 XML 处理库。SAX、DOM、XPATH 和 xmlreader 是一些可以用来查找的关键字。

  2. 只需忽略您的字符串是 xml 的事实并对其执行正常的字符串操作。拆分,遍历它,正则表达式等...

于 2012-08-06T17:32:37.637 回答
-2

是的,您必须执行XML Parsing

然后将其存储在 ArrayList 中。

前任:

ArrayList<String> aList = new ArrayList<String>();

aList.add("your string");
于 2012-08-06T17:34:13.717 回答