/*
   * (non-Javadoc)
   *
   * @see org.openid4java.discovery.html.HtmlParser#parse(java.lang.String,
   *      org.openid4java.discovery.html.HtmlResult)
   */
  public void parseHtml(String htmlData, HtmlResult result) throws DiscoveryException {
    if (DEBUG) _log.debug("Parsing HTML data:\n" + htmlData);

    HTMLDocumentImpl doc = this.parseDocument(htmlData);

    NodeList heads = doc.getElementsByTagName("head");
    if (heads.getLength() != 1)
      throw new DiscoveryException(
          "HTML response must have exactly one HEAD element, "
              + "found "
              + heads.getLength()
              + " : "
              + heads.toString(),
          OpenIDException.DISCOVERY_HTML_PARSE_ERROR);

    HTMLHeadElement head = (HTMLHeadElement) doc.getHead();
    NodeList linkElements = head.getElementsByTagName("LINK");
    for (int i = 0, len = linkElements.getLength(); i < len; i++) {
      HTMLLinkElement linkElement = (HTMLLinkElement) linkElements.item(i);
      setResult(linkElement.getRel(), linkElement.getHref(), result);
    }

    if (DEBUG) _log.debug("HTML discovery result:\n" + result);
  }