核心方法
///
/// 將符合 XML 格式的字串轉換為 XmlDocument
///
/// XML 格式字串
/// XmlDocument 物件
public XmlDocument ConvertStringToXmlDocument(string xmlString)
{
var document = new XmlDocument();
document.LoadXml(xmlString);
return document;
}
使用範例
var xml = @"- Hello
- World
";
var doc = ConvertStringToXmlDocument(xml);
var node = doc.SelectSingleNode("/root/item[@id='1']");
Console.WriteLine(node.InnerText); // Hello
錯誤處理與驗證
- 若輸入字串標籤不配對(如缺少結尾標籤),
LoadXml 會拋出 XmlException
- 可利用此特性驗證自行拼接的 XML 字串是否格式正確
- 建議包裝 try-catch,提供友善錯誤訊息或記錄
public bool TryParseXml(string xmlString, out XmlDocument doc, out string error)
{
doc = null;
error = null;
try
{
doc = new XmlDocument();
doc.LoadXml(xmlString);
return true;
}
catch (XmlException ex)
{
error = $"XML 格式錯誤: {ex.Message} (行 {ex.LineNumber}, 位置 {ex.LinePosition})";
return false;
}
}
注意事項
LoadXml 僅接受完整 XML 文件(單一根元素),片段需自行包裝根節點
- 大量/大型 XML 處理建議使用
XmlReader 流式讀取,避免記憶體壓力
- 命名空間處理需配合
XmlNamespaceManager 使用 XPath