xml 元素上的 c# 相同标签名称
c# same tag name on a xml element
我得到了这种情况,我使用函数 getelementesbytagname("") 获取了 xmlnodelist 上的所有元素,但有时我可以有这样的东西。
<?xml version="1.0" encoding="UTF-8" ?>
<Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nodo>
<nombre>nodo1</nombre>
<dato>1</dato>
<otronodo>
<nombre>nododentrodenodo</nombre>
<dato2>23</dato2>
</otronodo>
</nodo>
<nodo>
...
</nodo>
</Element>
如果您按名称 "nombre" 搜索所有节点,那么我会得到 nodo nombre 和 otronodo nombre。
我可以只获取nodo节点的名称吗?
我认为您只需要具有 nodo
父级的 nombre
值,但您可能需要 Element
的任何子级的任何 nombre
。使用 XPath 和 SelectNodes
,你可以做任何一个,所以我在下面包括了这两个。 SelectNodes
returns XmlNodeList
,就像 GetElementsByTagName()
一样。
var doc = new XmlDocument();
doc.LoadXml(@"<?xml version=""1.0"" encoding=""UTF-8"" ?>
<Element>
<nodo>
<nombre>nodo1</nombre>
<dato>1</dato>
<otronodo>
<nombre>nododentrodenodo</nombre>
<dato2>23</dato2>
</otronodo>
</nodo>
<nodo>
<nombre>nodo2</nombre>
</nodo>
<frodo>
<nombre>frodo nodo</nombre>
</frodo>
</Element>
");
// Any nombre whose parent is a nodo
var nodosNombres = doc.DocumentElement.SelectNodes("//nodo/nombre");
// Any nombre belonging to any child of Element
var topNombres = doc.DocumentElement.SelectNodes("/Element/*/nombre");
我得到了这种情况,我使用函数 getelementesbytagname("") 获取了 xmlnodelist 上的所有元素,但有时我可以有这样的东西。
<?xml version="1.0" encoding="UTF-8" ?>
<Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nodo>
<nombre>nodo1</nombre>
<dato>1</dato>
<otronodo>
<nombre>nododentrodenodo</nombre>
<dato2>23</dato2>
</otronodo>
</nodo>
<nodo>
...
</nodo>
</Element>
如果您按名称 "nombre" 搜索所有节点,那么我会得到 nodo nombre 和 otronodo nombre。
我可以只获取nodo节点的名称吗?
我认为您只需要具有 nodo
父级的 nombre
值,但您可能需要 Element
的任何子级的任何 nombre
。使用 XPath 和 SelectNodes
,你可以做任何一个,所以我在下面包括了这两个。 SelectNodes
returns XmlNodeList
,就像 GetElementsByTagName()
一样。
var doc = new XmlDocument();
doc.LoadXml(@"<?xml version=""1.0"" encoding=""UTF-8"" ?>
<Element>
<nodo>
<nombre>nodo1</nombre>
<dato>1</dato>
<otronodo>
<nombre>nododentrodenodo</nombre>
<dato2>23</dato2>
</otronodo>
</nodo>
<nodo>
<nombre>nodo2</nombre>
</nodo>
<frodo>
<nombre>frodo nodo</nombre>
</frodo>
</Element>
");
// Any nombre whose parent is a nodo
var nodosNombres = doc.DocumentElement.SelectNodes("//nodo/nombre");
// Any nombre belonging to any child of Element
var topNombres = doc.DocumentElement.SelectNodes("/Element/*/nombre");