次の形式のタイトルとフルネームを含む配列リストがあります
Dr.|ricardo bettati
Prof. Dr.-Ing.|Helmut sperling
miss|angela link
まず、内容を で分割してい|
ます。タイトルとフルネームを取得します。次に、フルネームをスペースで分割して取得firstname
し、familyname.
今、私は3つの弦を持っています
上記のリストのタイトルを含む文字列 title\ 文字列名。文字列の姓。
次のタスクは、既存の xml のテキスト コンテンツを上記の文字列firstname
とfamilyname
.Here で確認することです。既存の xml は次のとおりです。
<person>
<name>
<firstname>Jean-Luc</firstname>
<familyname>DeLorme</familyname>
</name>
</person>
<person>
<name>
<firstname>Dave</firstname>
<familyname>Sperling</familyname>
</name>
</person>
<person>
<name>
<firstname>Helmut</firstname>
<familyname>sperling</familyname>
</name>
</person>
firstname
およびfamilyname
内容が上記の xml 要素のテキスト コンテンツと一致する<firstname>
場合は、<familyname>
という名前の要素を作成<title>
し、リストから対応するタイトルを追加する必要があります。私の XML は次のようになります。
<person>
<name>
<firstname>Jean-Luc</firstname>
<familyname>DeLorme</familyname>
</name>
</person>
<person>
<name>
<firstname>Dave</firstname>
<familyname>Sperling</familyname>
</name>
</person>
<person>
<name>
**<title>Prof. Dr.-Ing.>/title>**
<firstname>Helmut</firstname>
<familyname>sperling</familyname>
</name>
</person>
次のコードで試しました
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream(new File("Final-Results.xml")));
Element element = doc.getDocumentElement();
NodeList list = doc.getElementsByTagName("person");
for (int i=0;i<titles.size();i++) { //Title is my arraylist
String names = (String) titles.get(i);
String[] content=names.split("\\|");
String title=content[0];
String[] fullname=content[1].split("\\s+");
String firstname=fullname[0];
String familyname=fullname[1];
for (int n = 0; n < list.getLength(); n++) {
Node node = list.item(n);
if ("firstname".equals(node.getNodeName()) && node.getTextContent().equals(firstname)) {
System.out.println("haii");
}
}
}
しかし、どうすれば子を取得してテキストの内容を確認し、特定の場所にノードを作成できますか?