資料ボタンを押して参照される[XML文書]を読み込み、次の[DOMによる処理]でXMLを作成します。結果をXML 1.0で表現したものとしてもっとも適切なものを選択してください。ただし結果の改行やインデントは考慮しません。また、処理するXMLにはインデント(改行やタブなどの無意味な空白)は無いものとします。
[XML文書]
<ContactXML xmlns="http://www.xmlns.org/2002/ContactXML" version="1.1"
creator="http://www.foo.com/bar/meishi-app/1.1">
<ContactXMLItem>
<PersonName>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
<FirstName pronunciation="タロウ">太郎</FirstName>
<LastName pronunciation="ヤマダ">山田</LastName>
</PersonNameItem>
</PersonName>
</ContactXMLItem>
<ContactXMLItem>
<PersonName>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
<FirstName pronunciation="イチロウ">一郎</FirstName>
<LastName pronunciation="スズキ">鈴木</LastName>
</PersonNameItem>
</PersonName>
</ContactXMLItem>
</ContactXML>
[DOMによる処理]
次のメソッドでXMLを作成します。
Document output = createXML( doc, impl );
このとき変数docは、読み込んだXML文書のDocumentインスタンスを参照しています。
また変数implは、DOMImplementationのインスタンスを参照しています。
DOMパーサは名前空間を識別します。
実行時のエラーはないものとします。
public static Document createXML( Document doc, DOMImplementation impl ) {
String DOCNS = "http://www.xmlns.org/2002/ContactXML";
String OUTNS = "urn:xmlmaster:GROUP";
Document output = impl.createDocument( OUTNS, "group", null );
Element root = output.getDocumentElement();
NodeList nlist = doc.getElementsByTagNameNS( DOCNS, "PersonNameItem" );
Element current;
Element target;
Element element;
for (int i = 0; i < nlist.getLength(); i++) {
current = (Element)nlist.item(i);
target = (Element)current.getFirstChild();
element = output.createElementNS( OUTNS, "member" );
element.appendChild( output.importNode(target, true) );
root.appendChild( element );
}
return output;
}
A.
<group xmlns="urn:xmlmaster:GROUP">
<member>
<FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
<FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
</member>
</group>
B.
<group xmlns="urn:xmlmaster:GROUP">
<member>
<FullName xmlns="http://www.xmlns.org/2002/ContactXML"
pronunciation="ヤマダ タロウ">山田 太郎</FullName>
</member>
<member>
<FullName xmlns="http://www.xmlns.org/2002/ContactXML"
pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
</member>
</group>
C.
<group xmlns="urn:xmlmaster:GROUP">
<member>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
<FirstName pronunciation="イチロウ">一郎</FirstName>
<LastName pronunciation="スズキ">鈴木</LastName>
</PersonNameItem>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
<FirstName pronunciation="タロウ">太郎</FirstName>
<LastName pronunciation="ヤマダ">山田</LastName>
</PersonNameItem>
</member>
</group>
D.
<group xmlns="urn:xmlmaster:GROUP">
<member>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
<FirstName pronunciation="タロウ">太郎</FirstName>
<LastName pronunciation="ヤマダ">山田</LastName>
</PersonNameItem>
</member>
<member>
<PersonNameItem xml:lang="ja-JP">
<FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
<FirstName pronunciation="イチロウ">一郎</FirstName>
<LastName pronunciation="スズキ">鈴木</LastName>
</PersonNameItem>
</member>
</group> |