为什么C#XDocument.subjections()不起作用?
我的XML的一个示例:为什么C#XDocument.subjections()不起作用?,c#,asp.net,xml,C#,Asp.net,Xml,我的XML的一个示例: <data> <Balance> <LocationName>Locatie 1</LocationName> <Latitude>39.74</Latitude> <Longitude>-104.99</Longitude> <RTI> <Container>12&
<data>
<Balance>
<LocationName>Locatie 1</LocationName>
<Latitude>39.74</Latitude>
<Longitude>-104.99</Longitude>
<RTI>
<Container>12</Container>
<Pallet>54</Pallet>
</RTI>
</Balance>
// Lots more Balance nodes
</data>
根据调试器,值“b”包含整个XML文档,而不是单个平衡节点。我做错了什么?我试图读取一个平衡节点的所有后代,其中LocationName节点的值等于一个字符串参数。有人能帮忙吗?如果您想读取平衡节点的后代,请使用下面的语句 var余额=单据子体(“余额”)
如果您想读取平衡节点的后代,它将用“Balances”加载所有元素,然后使用下面的语句 var余额=单据子体(“余额”)
它将用“Balances”加载所有元素。根据变量名和用法判断,您没有正确使用
这意味着“给我所有元素名为
的文档元素的后代”Balance“
根据变量名和用法判断,您使用得不正确
这意味着“将元素名为
的文档元素的所有子元素都给我”Balance“
您的文档中没有任何数据
元素。它只有一个数据元素,但这不一样。。。即使您请求数据
,也没有位置名称
元素。。。它有一个平衡元素。也许您想要var balances=doc.substands(“Balance”)
?您的文档中没有任何数据
元素。它只有一个数据元素,但这不一样。。。即使您请求数据
,也没有位置名称
元素。。。它有一个平衡元素。也许您想要var balances=doc.substands(“Balance”)
?谢谢,我误读了这个函数的文档。我想你必须输入你想要所有后代的节点的名称。取而代之的是,你必须输入你想要的所有子代的名字。同时使用XElement,这比XDocument快得多。示例代码:XElement doc=XElement.Load(HttpContext.Current.Request.PhysicalApplicationPath+“/Content/saldotracking.xml”);var余额=单据子体(“余额”);谢谢,我误读了这个函数的文档。我想你必须输入你想要所有后代的节点的名称。取而代之的是,你必须输入你想要的所有子代的名字。同时使用XElement,这比XDocument快得多。示例代码:XElement doc=XElement.Load(HttpContext.Current.Request.PhysicalApplicationPath+“/Content/saldotracking.xml”);var余额=单据子体(“余额”);
XDocument doc = XDocument.Load(HttpContext.Current.Request.PhysicalApplicationPath + "/Content/saldotracking.xml");
var balances = doc.Descendants("Data");
foreach (var b in balances)
{
if (b.Element("LocationName").Value == id)
{
this.LocationName = b.Element("LocationName").Value;
this.Longitude = Convert.ToDouble(b.Element("Longitude").Value);
this.Latitude = Convert.ToDouble(b.Element("Latitude").Value);
this.pallets = Convert.ToInt16(b.Element("RTI").Element("Pallet").Value);
this.containers = Convert.ToInt16(b.Element("RTI").Element("Container").Value);
}
}
public IEnumerable<XElement> Descendants(
XName name
)
var balances = doc.Descendants("Balance");