0

私は次のコードを持っています:

Document mainContent = new Document();
Element rootElement = new Element("html");
mainContent.setContent(rootElement);
Element headElement = new Element("head");
Element metaElement = new Element("meta");
metaElement.setAttribute("content", "text/html; charset=utf-8");
headElement.addContent(metaElement);
rootElement.addContent(headElement);
org.jdom2.output.Format format = org.jdom2.output.Format.getPrettyFormat().setOmitDeclaration(true);
XMLOutputter outputter = new XMLOutputter(format);
System.out.println(outputter.outputString(mainContent));

これにより、出力が生成されます。

<html>
  <head>
    <meta content="text/html; charset=utf-8" />
   </head>
</html>

今、私は次の文字列を持っています:

String links = "<link src=\"mysrc1\" /><link src=\"mysrc2\" />"

それをHTML要素に追加して、出力が次のようになるようにするにはどうすればよいですか。

<html>
    <head>
       <meta content="text/html; charset=utf-8" />
       <link src="mysrc1" />
       <link src="mysrc2" />
    </head>
</html>

これは完全に有効なXML要素ではありませんが、各リンクは有効なXML要素であることに注意してください。

必要に応じて、別のXMLパーサーを使用してもかまいません。役立つ場合は、コードHTMLCleanerのどこかですでに使用しています。

4

1 に答える 1

1

あなたは彼らがここで言及するようなことをすることができます。基本的に、xmlスニペットをルート要素内に配置します。

links ="<root>"+links+"</root>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc=builder.parse(links ByteArrayInputStream(xml.getBytes()));
NodeList nl = ((Element)doc.getDocumentElement()).getChildNodes();
for (int temp = 0; temp < nl .getLength(); temp++) { 
Node nNode = nl .item(temp);
    //Here you create your new Element based on the Node nNode, and the add it to the new DOM you're building

}

次に、リンクを有効なXMLドキュメントとして解析し、必要なノード(基本的にはルートノード以外のもの)を抽出します。

于 2013-02-12T16:41:30.490 に答える