1

私のソフトウェアでは、&のようないくつかのHTMLエンティティを含むxmlファイルを受け取っています。または何でも。xmlのデコードに成功しましたが、HTMLエンティティのデコードには成功しませんでした。文字列は、htmlエンティティに出会うとカットされます...誰でも助けてくれますか?私は実際にxmlをデコードするためのそのようなコードを持っています...

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   DocumentBuilder builder = factory.newDocumentBuilder();
InputStream inputStream = entity.getContent();
Document dom = builder.parse(inputStream);
   inputStream.close();


   Element racine = dom.getDocumentElement();
   NodeList nodeLst=racine.getElementsByTagName("product");

誰かが私が同じ仕事をする方法を知っていますか?xmlをdomオブジェクトとしてデコードし、HTMLエンティティもデコードしますか?

実際、私のdomオブジェクトは、HTMLエンティティのために切り取られた文字列が含まれているため、正しくありません...どうすればよいですか?

4

3 に答える 3

1

"'"アポストロフィを文字列の最後として検出するためだと思います。私は解決策を見つけました。

String stringDatosEntrada = new Scanner(urlConnection.getInputStream()).useDelimiter("\\A").next().replaceAll("'","\'").replaceAll("'","\'");

InputStream is = new ByteArrayInputStream(stringDatosEntrada.getBytes());
Document dom = builder.parse(inputStream)
于 2011-11-08T13:40:45.237 に答える
1

私は提案する2つのアプローチがあります:

  1. 検証を無効にします:factory.setValidating(false);

  2. XHTML DTDタグを、タグの直後にXMLストリームに追加します<?xml ...>

    <?xml version = "1.0"> <!DOCTYPE html PUBLIC "-// W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional dtd ">

于 2010-11-09T12:29:12.923 に答える
0

androids Html tag editorを使用してみてください。すべてのHTMLを認識するわけではありませんが、文字列の変換には機能するようです。

    Html.fromHtml(inputstream)

以下に簡単な例を示します。

    TextView tv = (TextView) findViewById(R.id.tv);
    String s = "<b>This is</b> my first <u>HTML String</u> &amp; it works well!";
    tv.setText(Html.fromHtml(s));

出力は次のとおりです。

于 2010-11-09T09:41:34.517 に答える