1

私は Android で作業しており、URL から XML を取得し、いくつかの値を取得する必要があります。ダウンロードは問題ありませんが、一部のフィールドには HTML エンティティ (- など) を含めることができます。Node クラス (org.w3c.dom.Node) から getNodeValue() メソッドを呼び出すと、& char が見つかると値が停止し、文字列が切り捨てられます。

例えば:

<title>Episode #56 &#8211; Heroes</title>

getNodeValue() を呼び出すと、「エピソード #56」のみが返されます。

4

1 に答える 1

0

あなたはこのようなことを試すかもしれません

String str = "<title>Episode #56 &#8211; Heroes</title>";
str = str.replaceAll("&", "amp;");

次に、「str」を解析してみてください。動作するはずです。

これは、dom パーサーを使用した純粋な実装のサンプルです。

public static void main(String[] args) throws XPathExpressionException {
    String str = "<title>Episode #56 &#8211; Heroes</title>";   
    str = str.replaceAll("&", "amp;");
    Document domDoc = null;
    try {
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes());
        domDoc = docBuilder.parse(bis);
    } catch (Exception e) {
        e.printStackTrace();
    }
    NodeList nlist = domDoc.getElementsByTagName("title");
    //System.out.println("child count  "+nlist.getLength());
    System.out.println("title value = "+nlist.item(0).getTextContent());
}
于 2012-09-05T12:52:35.380 に答える