4

自分自身を説明する最良の方法は、コードを示すことです。

これは、私が解析している XML ファイルです。

<module>
    <name>name1</name>
    <type>type</type>
    <content>
        <p>This is some piece of code that should be treated as a full string, even that 'p' tag, because I want to use all content inside p tag for a webview in android.
        </p>
        <h1>This is a big classy title in html</h1>
    </content>
</module>

タグを読み取ることができるようにp、基本的には<content>タグのコンテンツを取得し、それを String に保存して処理したいと考えています。最後に、次のように文字列を初期化したいと思います。

String content = "<p> This is some piece.......</p> <h1>This is....</h1>";

<name>これは、値を取得するために使用している私のコードです<type>:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(contingut);
doc.getDocumentElement().normalize();
NodeList nodes = doc.getElementsByTagName("module");
for (int i = 0; i < nodes.getLength(); i++) {
    Node node = nodes.item(i);
    Element element = (Element) node;
    if(element.getNodeType() == Element.ELEMENT_NODE){
        System.out.println(getValue("name",element));
        System.out.println(getContent("content",element));
    }
}
private static String getValue(String tag, Element element) {
    String value="";
    try {
        NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
        Node node = (Node) nodes.item(0);
        value=node.getNodeValue();
    } catch (Exception e){
        value=null;
    }
    return value;
}

たとえば、解析時に Name は正しく出力されますname1が、content空白が返されます。

<content>のコンテンツを文字列として取得するにはどうすればよいですか?

ありがとうございました。

編集

private static String getContent(String tag, Element element) {
    String value="";
    try {
        Node nodes = element.getElementsByTagName(tag).item(0);
        value = nodes.getTextContent();
    } catch (Exception e){
        value=null;
    }
    return value;
}

Log.d("debugging",getContent("content",element));

そして、これはこれを印刷しています: %20%20%20%20%20This%20some%20piece ....

string を返していないようです<p>

4

2 に答える 2