0
我的任務似乎聽起來很簡單,但證明非常困難。我有一個XML文件,如下所示:C#解析/保存XML文檔
<?xml version="1.0" encoding="UTF-8"?>
<ref:ReferralDocument xmlns:ref="http://ref.com" xmlns:gen="http://ref.com"
xmlns:h="http://www.w3.org/1999/xhtml" xmlns:pbr="ref.com"
xmlns:xsi="ref.com" schemaVersion="2.9">
<ref:MessageDetails>
<gen:TestID>
<gen:IdValue>2412665651</gen:IdValue>
<gen:IdScheme>Test</gen:IdScheme>
<gen:IdType>Person</gen:IdType>
</gen:TestID>
</ref:MessageDetails>
<gen:Name>
<gen:StructuredName>
<gen:GivenName>Test</gen:GivenName>
<gen:FamilyName>Test</gen:FamilyName>
</gen:StructuredName>
<gen:NameType>Current Name</gen:NameType>
</gen:Name>
</ref:MessageDataRef>
我想讀取XML元素對象中的每個XML元素。將它們存儲在XML元素的列表或數組中。
//Create new document
var document = new XmlDocument();
document.Load("C:\\Users\\liam.mccann\\Documents\\test.xml");
加載後在我沒有任何成功獲取每個元素似乎只能得到第一個。
所以簡單加載XML文檔>>驗證XML >>從第一個元素獲取方案版本>>解析爲XML元素列表。
解析後,我希望它很容易重構文件並再次保存。而且文件是一樣的。
希望有人能夠幫助!
我在選擇節點行 – LmC
上得到一個「可能的空值賦值給標記爲非空屬性的實體」這意味着你正在使用Resharper:對你有更多的好感。如上所述,答案只是表明這是可能的,但我仍然不相信這是最好的方法。這裏有一個代碼,如果你有興趣尋求它,可以避免發出警告: 'var xmlNodeList = document.SelectNodes(「/ descendant-or-self :: *」);如果(xmlNodeList!= null) { var array = xmlNodeList.OfType().ToArray(); }' –
decPL
+ 1很好的答案,唯一的事情是!從文件中讀取它之後,就像你建議XML Element Array一樣。 是否有可能保存父母子女結構仍然存在? – LmC