1

xml フラグメントを含むファイルがあります。このファイルに子要素を追加して、再保存する必要があります。Java (1.6) で xom を使用しようとしています。問題は、ファイル内のデータに名前空間プレフィックスが含まれているため、 Document オブジェクトを作成すると次のようになることです。

[致命的なエラー] tsip:1:33: 要素タイプ "publications" に関連付けられた属性 "tsip:action" のプレフィックス "tsip" はバインドされていません

ファイルには次のものが含まれます。

<publications tsip:action="replace">
<publication tsip:dw="000000" tsip:status="dwpi:equivalent" tsip:lang="ja" tsip:drawings="0">
    <documentId>
        <number tsip:form="dwpi">58071346</number>
        <countryCode>JP</countryCode>
        <kindCode>A</kindCode>
    </documentId>
</publication>
</publications>

私のJavaコードは次のとおりです。

FileInputStream fisTargetFile;

// Read file into a string
fisTargetFile = new FileInputStream(new File("C:\myFileName"));
pubLuStr = IOUtils.toString(fisTargetFile, "UTF-8");

Document doc = new Builder().build(pubLuStr, "");   // This fails

コードの名前空間を認識させる必要があると思います。つまり、次のようなものを追加します。

doc.getRootElement().addNamespaceDeclaration("tsip", "http://schemas.thomson.com/ts/20041221/tsip");

しかし、ドキュメントドキュメントを作成する前にこれを行う方法がわかりません。ヘルプ、提案、感謝します。

4

1 に答える 1