我只需要提取屬性「PointName」中':'和'/'之間的部分。 下面是示例XML:如何從C#中的xml中提取屬性值的一部分
var xdoc = XDocument.Load(xmlFilePath); // xmlFilePath - where the above XML file is located.
var ns = XNamespace.Get("Data");
var pointNames = xdoc.Root.Elements(ns + "tblPoint").Attributes("PointName").ToList();
我希望有一種方式來填充這樣的pointNames:
var pointNames = xdoc.Root.Elements(ns + "tblPoint").Attributes("PointName").StringBetween(':', '/').ToList();
<?xml version="1.0" encoding="utf-8"?>
<Trend xmlns="Data">
<tblPoint PointName="ABC:XYZ123/AAA.DDD-111.MMM.MV-3.PV" UOM="0">
<tblValue UTCDateTime="2017-07-18T05:07:47" val="3" />
<tblValue UTCDateTime="2017-07-18T05:08:27" val="0" />
</tblPoint>
<tblPoint PointName="BCD:XYZ234/AAA.DDD-222.MMM.MV-3.PV" UOM="0">
<tblValue UTCDateTime="2017-07-18T06:01:12" val="0" />
<tblValue UTCDateTime="2017-07-18T06:01:13" val="0" />
</tblPoint>
</Trend>
我目前使用下面的代碼
我不願意在pointNames上使用循環,因爲tblPoint節點在XML中可以有數千個節點。
爲什麼標記爲XSLT? –
我相信這個問題可以通過使用XSLT更好地解決。 –