我的任务似乎听起来很简单,但证明非常困难。我有一个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 Element对象。将它们存储在List元素或XML元素数组中。
//Create new document
var document = new XmlDocument();
document.Load("C:\\Users\\liam.mccann\\Documents\\test.xml");
加载后,我没有取得任何成功,只是看起来能够得到第一个。
如此简单的加载XML文档&gt;&gt;验证XML&gt;&gt;从第一个元素获取Scheme版本&gt;&gt;解析为XML元素列表。
解析后,我希望重新构建文档并再次保存它很容易。文件是一样的。
希望有人能够提供帮助!
答案 0 :(得分:1)
我想将每个XML元素读入XML Element对象。作为商店 它们在列表或XML元素数组中。
您可以执行以下操作:
var array = document.SelectNodes("/descendant-or-self::*")
.OfType<XmlElement>()
.ToArray();
话虽如此,如果你想要的只是:
解析之后我希望重组文档很容易 再次保存。
然后将元素存储在数组中可能不是最佳方法。您可以使用XmlDocument
类本身(或者更好的 - 新的LINQ方法:System.Xml.Linq.XDocument
)。
以下是希望可以帮助您入门的MSDN文档:http://msdn.microsoft.com/en-us/library/bb387084%28v=vs.110%29.aspx。