Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不使用LINQ->XML的情况下,使用C和行号从XML文件中获取XMLNode_C#_Xml - Fatal编程技术网

C# 如何在不使用LINQ->XML的情况下,使用C和行号从XML文件中获取XMLNode

C# 如何在不使用LINQ->XML的情况下,使用C和行号从XML文件中获取XMLNode,c#,xml,C#,Xml,我想知道是否有一种方法可以获取xml文档的XmlNode,因为我知道行号,我使用C,不想使用Linq XDocument,我需要从XmlDocument获取XmlNode。例如,如果我有以下XML: <Document> <a key="1">AAA</a> <a key="2">Aa</a> <a key="3">aaA></a> <a key="4">aA></a> <

我想知道是否有一种方法可以获取xml文档的XmlNode,因为我知道行号,我使用C,不想使用Linq XDocument,我需要从XmlDocument获取XmlNode。例如,如果我有以下XML:

<Document>
<a key="1">AAA</a>
<a key="2">Aa</a>
<a key="3">aaA></a>
<a key="4">aA></a>
<b key="15">BbbB></b>
</Document>
我希望有一个函数,可以将行号4作为输入并返回

<a key="3">aaA></a>
所有这些都不使用LINQ,只使用XmlDocument和XmlNode语法,而不使用XDocument。。 提前感谢

更具体地说,我需要应答器,而不是线路,例如,如果Xml是这样的:

1. <Document>
2. <a key="1">AAA</a>
3. <a key="2">Aa</a>
4. <a key="3">
5. aaA
6. </a>
7. <a key="4">aA></a>
8. <b key="15">BbbB></b>
9. </Document>
我希望有一个函数,它将返回的行号4、5或6作为输入:

<a key="3">aaA</a>

您可以通过读取中的字符串文本并获取所需的行来完成此操作。但它只是一个字符串,而不是一个XmlNode

要使用XmlDocument,您需要选择根节点,并为该节点的子节点编制索引-1,以获取该节点所使用的行

        XmlNode root = doc.SelectSingleNode("//Document");
        XmlNode nodeIWant = root.ChildNodes[line - 1];

如果您想按行号进行,不要将其解析为XML,而是将其解析为文本文件。然后通过索引拉出您想要的字符串并解析它。在您的示例中,所需的行号为5。除非您建议现在使用节点的第4行解析xml。如果需要按行信息选择项,您可能必须使用XmlReader。请检查并查看。虽然您的示例适用于OP提供的文本,但它通常不是有效的方法,因为XML节点和行号之间没有连接。我理解这一点,这就是为什么我的第一个建议是从文件中读取文本行。我也在为他要求的方式提供解决方案。