从XML文件中获取元素
问题描述:
我有这样的问题:从XML文件中获取元素
我有一个方法
private XmlElement ToXmlElement(string xml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return doc.DocumentElement;
}
而且我输入XML字符串:
<?xml version="1.0"?>
<Collection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:IEEE-1671:2009.02:Common">
<Item name="edsw">
<Collection />
</Item>
</Collection>
我需要从这个字符串的XmlElement返回,看起来像:
<Collection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:IEEE-1671:2009.02:Common">
<Item name="edsw">
<Collection />
</Item>
</Collection>
那一切都没有<?xml version ="1.0"?>
但doc.DocumentElements只返回我:
<Item name="edsw" xmlns="urn:IEEE-1671:2009.02:Common">
<Collection />
</Item>
有什么办法如何实现的呢?
答
看那OuterXml
,这就是你会发现你所需要的:
doc.DocumentElement.OuterXml
+0
但那只是字符串,我需要返回XmlElement –
+1
@Martin Ch,以及你已经拥有它:'doc.DocumentElement',这就是你正在返回。当你在调试时看看'OuterXml'属性而不是'InnerXml'。 –
这不会发生在我身上。 'DocumentElement'返回整个'Collection'。你如何将结果转换为字符串? – svick
当我调试它时,我看到DocumentElement内部xml只有这个,不是整个集合, –
字符串ToStringElement(XmlElement xml){StringWriter sw = new StringWriter(); XmlTextWriter writter = new XmlTextWritter(sw); xml.WriteTo(writter); return sw.toString(); } –