If you have these questions then I recommend using a database or serialised text file, XML is much less efficient.
It really depends on the size of the XML file, there is an overhead for each file, but the size of the file is very important, where possible try to load as little as possible.
simpleXML is not the most efficient method, but it is the most flexable. The most efficient method depends a lot on what you are doing, if you want to add a row, then it is faster to not use a lib, just edit the file with normal text editing functions. If you want to read the whole file and parse it multiple times, then it's better to use a multi-dimensional array and the xml_parse function.
XML is parsed once, edits once it's parsed will not have an effect, but an edit while it is being read might cause problems. That is why there is such a thing as a file lock, which should be used.
If you are using PHP please use the [PHP] and [/PHP] forum tags for highlighting...
The same applies to HTML and the forums [HTML][/HTML] tags.
I would second the motion that the best way to store data that needs to be manipulated by users is via a database. It's going to be more efficient, plus it has the tools built into it for locking, transactions, etc. to avoid things like race conditions between concurrent users. If you need to provide XML output, that can be generated on the fly from the database as easily as HTML output can be generated.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation