1

xml文字列からorg.w3c.dom.Documentオブジェクトを作成しようとしています。私は他の質問で多くの人が提案したことに従いましたが、ドキュメントは空になってしまいます。次のコードの何が問題になっていますか?

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader(response.getResponseText())));

また、文字列内のxmlテキストは次のようになります(これはresponse.getResponseText()から取得されます)

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
    <a:Action s:mustUnderstand="1">http://www.blah.com/ns/2006/05/01/webservices/123/TokenManagement_1/CreateServiceToken_1_Reply</a:Action>
    <CacheResponse xsi:type="DoNotStoreCacheResponse" xmlns="http://www.blah.com/ns/2008/03/01/webservices/123/Cache_1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Date>2012-09-04T15:35:06.8116593Z</Date>
        <DoNotStore />
    </CacheResponse>
    <a:RelatesTo>ba04425d-d93e-4a70-a134-ab8e29d5345c}</a:RelatesTo>
</s:Header>
<s:Body>
    <CreateServiceToken_Response_1 xmlns="http://www.blah.com/ns/2006/05/01/webservices/123/TokenManagement_1" xmlns:global="http://www.blah.com/ns/2006/05/01/webservices/123/Common_1">
        <Expiration>2012-09-04T17:04:19.1834228Z</Expiration>
        <global:Token>3DEC2723A01047D1590544CBA5BA1E30326535E609DC1E6FAC5C659BC3B8A693BB054834A58B235037ED830CD05784DB176A62309AEB4B608C6F0B5B3F13ADE0EC56BE9F822ACFA3B549D4427D89BF030BFF48BA671DCAEB49940EFEBDEBFB71</global:Token>
    </CreateServiceToken_Response_1>
</s:Body>

誰かが私のコードの何が問題になっているのかわかりますか?最終的には、ドキュメントに対していくつかのxpathクエリを実行したいだけです...

4

1 に答える 1

2

設定から始めることをお勧めしますdocFactory.setNamespaceAware(true);。そうしないと、解析、DOM の構築、および XPath の実装が、投稿したように名前空間を使用して XML を処理できなくなります。

于 2012-09-04T16:04:45.857 に答える