[英]How to get n value from RSA public key XML file .net core c#
[英]how to take value from xml file in .net c#
我有一个xml文件,我想使用linq.Xml来获取内部文本,如下所示
<?xml version="1.0" encoding="utf-8" ?>
<testObject class="LN" version="16A" distName="CEL-1" id="456" xmlns="kaml20.xsd">
<p name="rcc">424</p>
<p name="kcc">02</p>
<p name="testname">testobject</p>
</testObject>
而且我没有执行以下代码
private static string GetvalueNokia(XElement pin, string val)
{
string fname="";
try
{
//string location = pin.Descendants("cellName").Single().Value;
//return pin
//.Descendants("p")
//.FirstOrDefault(x => x.Attributes().Any(a => a.Value.ToUpper() == val.ToUpper())).Value;
////.Attribute("value").Value;
var data = from atts in pin.Elements("name")
select new
{
cell= (string)atts.Element("name")
};
}
}
编辑我的密码如下所示
<testObject class="LN" version="16A" distName="CEL-1" id="456" xmlns="kaml20.xsd">
<p name="cellName">testname</p>
<p name="rcc">424</p>
<p name="kcc">02</p>
</testObject>
看起来您想获取xml节点的内部文本,该文本在name
属性中具有特定值,如果正确,则可以尝试以下代码:
var data = (from node in pin.Descendants("name")
where node.Attribute("name") !=null && node.Attribute("name").Value == value
select new
{
AttributeValue = node.Attribute("name").Value,
InnerText = node.Value
});
我们需要首先过滤具有属性name
的节点,并结合使用包含作为输入提供的值的节点。
如果要对xml nodes属性中的输入参数进行区分大小写的比较,则可以使用String.Compare
例如:
String.Equals(node.Attribute("name").Value, value,StringComparison.OrdinalIgnoreCase)
并且如果pin
是您试图从中获取name
属性值的元素,则只需以属性名称作为输入调用它的Attribute
方法,然后访问Value
属性,例如:
private static string GetvalueNokia(XElement pin, string val)
{
return pin.Attribute("name")?.Value;
}
希望能帮助到你!
问题是,当您调用Descendants("p")
等时,由于父节点属于特定的命名空间,因此无法获得结果。
private static string GetValueNokia(XElement pin, string val)
{
XNamespace ns = "kaml20.xsd";
var paragraph = pin.Descendants(ns + "p").FirstOrDefault(
p => p.Attributes("name").FirstOrDefault(a => a.Value == val) != null
);
return paragraph == null ? null : paragraph.Value;
}
您称之为:
var pin = XElement.Parse(xml);
string val = "kcc";
Console.WriteLine(GetValueNokia(pin, val));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.