我正在从XML文件创建一个.csv
报告,如下所示:
<Registration>
<REGISTRATIONID>1</REGISTRATIONID>
<TYPE>2</TYPE>
</Registration>
<Registration>
<REGISTRATIONID>2</REGISTRATIONID>
<TYPE>3</TYPE>
</Registration>
如果在XML文件中<TYPE>3</TYPE>
标记中至少有<Registration>
,则如何获取值为“True”的字符串,如果没有,则为“FALSE”。< / p>
只需获取每个<REGISTRATIONID>
的值,我就会这样做
string type = "";
foreach (CGXML.RegistrationRow rr in fisier.Registration)
{
type = rr.TYPE.ToString
sout.WriteLine(string.Concat(new string[] { "\"", type, "\"" }));
}
但遗憾的是,凭借我目前的技能,即使每个人都无法使其发挥作用
<REGISTRATIONID>
“正确/错误”声明......
所以,这个代码,或者我应该从哪里开始阅读以学习/理解这将是非常有帮助的。
感谢您的时间。
答案 0 :(得分:1)
欢迎使用Stack Overflow!
首先你的xml无效。如果您要发布问题,则需要提供足够的信息,以便用户可以使用该信息来复制您的方案。
无论如何想象这是你的文件:
<?xml version="1.0"?>
<stuff>
<Registration>
<REGISTRATIONID>1</REGISTRATIONID>
<TYPE>2</TYPE>
</Registration>
<Registration>
<REGISTRATIONID>2</REGISTRATIONID>
<TYPE>3</TYPE>
</Registration>
</stuff>
以下是阅读方法。我基于TYPE
节点的值做出了错误的判断。您可以使用该代码为另一个节点执行此操作。您可以使用Linq减少代码,但为了清晰起见,我保持简单。这是返回包含&#34; True&#34;的字符串的方法。如果任何TYPE
节点在整个文件中有2或3个:
public static String SearchFile(string path)
{
var document = XDocument.Parse(File.ReadAllText(path));
foreach (var thisRegistration in document.Element("stuff").Elements("Registration"))
{
var typeValue = thisRegistration.Element("TYPE").Value;
if (typeValue == "2" ||
typeValue == "3")
{
return "True";
}
}
return "False";
}
以下是如何使用代码:
var answer = SearchFile("PathToYourFile.xml"); // Replace with your filepath
Console.WriteLine("Answer: {0}", answer);