SOAP Web サービス呼び出しによって返された XML から HTML 文字列を取得しようとしています。私の Node オブジェクトは次のクラスです。
org.w3c.dom.Node
ノードを通過するために使用するループのコード サンプルを次に示します。
for(int t = 0; t < elements; t++)
{
Element myElement = (Element)elements.item(t);
NodeList childNodes = myElement.getChildNodes();
int numChildren = childNodes.getLength();
for(int counter = 0; counter < numChildren; counter++)
{
Node currentNode = childNodes.item(counter);
NodeList currentNodeChildNodes = currentNode.getChildNodes();
int numCurrentNodeChildren = currentNodeChildNodes.getLength();
Node firstChild = currentNodeChildNodes.item( 0 );
}
}
現在、これらのノードの一部には生の html が含まれています。もちろん、子供がいるように見えます。これらの html ノードを取得して、そのすべてのコンテンツを直接String
. 試しcurrentNode.getTextContent()
てみましたが、java.lang.NullPointerException
.
子ノードが含まれているかどうかに関係なく、ノードを取得してその生のコンテンツを文字列として取得するために使用できる方法はありますか?
編集: HTML コンテンツを含む XML の例を次に示します。
<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetInfoResponse xmlns="http://www.mycompany.com/">
<GetInfoResult>
<infoList>
<Info>
<iso>US</iso>
<country_name>United States</country_name>
<title>This is the title</title>
<html_string><strong>NEWS</strong><h1>This is a section header</h1><p>Here is some information</p></html_string>
<last_update_date>2013-01-01 00:00:00</last_update_date>
</Info>
</infoList>
<faultResponse>
<faultOccurred>boolean</faultOccurred>
<faultDescription>string</faultDescription>
</faultResponse>
</GetInfoResult>
</GetInfoResponse>
</soap:Body>
</soap:Envelope>