Ну, это немного сложно понять, не видя реально существующую XML-структуру и желаемую новую XML-структуру. По сути, я бы предположил, что вам нужен новый узел XML, содержащий пригород на том же уровне, что и элемент postcode
.
В этом случае я бы использовал:
XmlElement elem = xDoc.CreateElement("suburb");
elem.InnerText = ...;
node.ParentNode.AppendChild(elem);
EDIT
Что касается эффективности: почему бы вам не прочитать ваш «файл почтового индекса» только один раз, добавив записи в словарь, содержащий почтовый индекс в качестве ключа и пригород в качестве значения? Это гораздо быстрее, чем читать файл каждый раз.
Dictionary<string, string> postCodeMap = new Dictionary<string, string>();
string[] lines = File.ReadAllLines(...);
foreach (string line in lines)
{
string[] parts = line.Split(',');
postCodeMap[parts[0]] = parts[1];
}
А позже сделайте:
foreach (XmlNode node in postCodeNodes)
{
string suburb = postCodeMap[node.InnerText];
XmlElement elem = xDoc.CreateElement("suburb");
elem.InnerText = suburb;
node.ParentNode.AppendChild(elem);
}