C# 获取整个节点XML而不是InnerXml
给定以下XML:C# 获取整个节点XML而不是InnerXml,c#,xml,xmldocument,innerxml,C#,Xml,Xmldocument,Innerxml,给定以下XML: <Root> <Item id="1"> <name>Foo</name> <status>Active</status> </Item> <Item id="2"> <name>Bar</name> <status>Inactive</status> </Item> <
<Root>
<Item id="1">
<name>Foo</name>
<status>Active</status>
</Item>
<Item id="2">
<name>Bar</name>
<status>Inactive</status>
</Item>
</Root>
我可以很容易地获得每个节点的InnerXml,对于第一个节点,它是:
<name>Foo</name>
<status>Active</status>
Foo
活跃的
但是如何获取包含标记及其属性的节点的XML,例如:
<Item id="1">
<name>Foo</name>
<status>Active</status>
</Item>
福
活跃的
尝试使用而不是InnerXml
:
foreach (XmlNode node in nodes)
{
var nodeXml = node.OuterXml;
}
我不明白为什么我不能在我的foreach循环(InnerXml/OuterXml)中访问这些属性中的任何一个。只要我在循环声明中显式地将XmlNode设置为类型,就可以按预期工作。非常感谢。
XmlNodeList
实现了IEnumerable
,而不是IEnumerable
,因此,如果在foreach
循环中使用var
,循环变量将被视为对象,因为编译器无法检测到它是更具体的类型。
foreach (XmlNode node in nodes)
{
var nodeXml = node.OuterXml;
}