我有以下格式的XML节点结构
<comments>
<comment lastupdated='12/08/2014:08:08:08' moderate='false'>
<id>user1</id>
<message>some message</message>
<replies>
<comment moderate='false'>
<id>user2</id>
<message>some other message</message>
</comment>
</replies>
</comment>
<comment lastupdated='13/08/2014:12:08:40' moderate='false'>
<id>user3</id>
<message>some message</message>
<replies>
<comment moderate='false'>
<id>user1</id>
<message>some other message</message>
</comment>
</replies>
</comment>
</comments>
我发现这个XML到LINQ解决方案XMLdocument Sort想知道这是否也可以通过XPath实现,这样我就不需要加载新的程序集了。我也很少与属性和子节点混淆?在性能方面哪一个更好?按属性值或子节点获取?
更新1
@Timothy在此link中提出的解决方案似乎很有希望
var sortedItems = myDoc.GetElementsByTagName("item").OfType<XmlElement>()
.OrderBy(item => DateTime.ParseExact(item.GetAttribute("sTime"), "MM/dd/yyyy h:mm:ss tt", null));
答案 0 :(得分:0)
你的意思是XDocument.XPathSelectElements
方法吗?看到这个问题:XPath and XPathSelectElement
请注意,您无法直接选择属性。我不确定这种方法的性能如何,你总是可以自己遍历树。