这是我提取元素的方法,但是当我尝试获取属性的值时,我只得到一些数字而不是Guid字符串:
... = from c in xdoc.Element(mdpr + "A")
.Elements(mdpr + "B")
.Elements(mdpr + "C")
let data= c
select new MyData
{
state = (string)data.Element(mdpr + "state"),
TEMP = (string)data.Attribute("guidNumber") // TEMP is string
...
这是XML:
...
<mdpr:B>
<mdpr:C guidNumber="4t56u27b-b784-4303-b710-95966b6e68ba" >
<mdpr:state>17</mdpr:state>
...
的更新
如果XML有'{'那么它可以工作:
<mdpr:C guidNumber="4t56u27b-b784-4303-b710-95966b6e68ba" > // doesn't work
<mdpr:C guidNumber="{4t56u27b-b784-4303-b710-95966b6e68ba}" > // work
但是如何获得这个价值呢?
答案 0 :(得分:0)
你想要属性的value:
data.Attribute("guidNumber").Value
答案 1 :(得分:0)
下面的这个片段可以正常使用:
String xml_string = @"<root xmlns:mdpr=""someUri"">
<mdpr:A>
<mdpr:B>
<mdpr:C guidNumber=""4t56u27b-b784-4303-b710-95966b6e68ba"" >
<mdpr:state>17</mdpr:state>
</mdpr:C>
</mdpr:B>
</mdpr:A>
</root>";
var q = XElement.Parse(xml_string).Descendants()
.Where(c => c.Name.LocalName.ToString() == "C").First()
.Attribute("guidNumber").Value;
Console.WriteLine(q);