[英]How to Read XML node attributes?
大家好,下面是我的XML文件。
<print>
<part keyName="logo" fontName="" fontSize="" fontColor="" bold="" italic="" underline="" maxWidth="45" textAlign="center" isBarcode="" isImage="true">
<logo>testimg.jpg</logo>
</part>
<part keyName="header" fontName="" fontSize="" fontColor="" bold="" italic="" underline="" maxWidth="45" textAlign="center" isBarcode="" isImage="">
<SpaceSep>0</SpaceSep>
<LineSep>1</LineSep>
<text fontSize="20">Tax Invoice</text>
<LineSep>1</LineSep>
<text>Test Pvt Ltd</text>
<LineSep>1</LineSep>
<address/>
<area/>
<city/>
<state/>
<pin/>
<country/>
<LineSep>1</LineSep>
<text>Phone: </text>
<phone></phone>
<LineSep>1</LineSep>
<text>GSTIN: </text>
<gstIn></gstIn>
<LineSep>1</LineSep>
</part>
</print>
上面的XML文件包含父根作為Print ,子節點作為一部分 。 我想讀取子節點及其在C#中的屬性。 如果XML文件包含唯一的節點名,那么我可以讀取它們。 但是,如果所有子節點都包含相同的節點名,那么我們如何讀取它們。
如果我很好地理解了您的問題,則應執行以下操作:
//...
using System.Linq;
using System.Xml.Linq;
//...
XDocument doc = XDocument.Load(@"C:\directory\file.xml");
IEnumerable<XElement> partElements = doc.Root.Elements("part");
foreach (XElement partElement in partElements)
{
// read attribute value
string keyName = partElement.Attribute("keyName")?.Value;
//...
// iterate through childnodes
foreach (XElement partChildElement in partElement.Elements())
{
// check the name
if (partChildElement.Name == "SpaceSep")
{
int value = (int)partChildElement; // casting from element to its [int] content
// do stuff for <SpaceSep> element
}
else if (partChildElement.Name == "text")
{
string text = (string)partChildElement; // casting from element to its [string] content
// do stuff for <text> element
}
// and so on for all possible node name
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.