我正在尋找從我稱爲initialInspections.xml
的XML文件加載重複的元素。問題是系統需要動態,並允許添加許多不同的inspectionNotes
。即使它們具有相同的名稱,我也需要輸入它們全部。從XML文件加載重複元素
如果有人可以請給我一個這樣做的方法,我會非常感激,因爲我一直在尋找近3個小時,我還沒有找到任何有效的工具。
我需要全部關閉每個inspectionNote
節點內的數據,並將其放入一個名爲initialInspectionNotes
的結構的數組中。
這裏是我到現在爲止:
public int propertyID;
public string initialInspectorUsername;
public DateTime intialDateTime;
public struct initialInspectionNotes
{
public string locationWithinProperty;
public string locationExtraNote;
public string costCode;
public float estimatedTime;
}
private void finalInspection_Load(object sender, EventArgs e)
{
//Open the intialInspections xml file and load the values into the form
XmlDocument xdoc = new XmlDocument();
FileStream rFile = new FileStream(values.xmlInitialFileLocation, FileMode.Open);
xdoc.Load(rFile);
XmlNodeList list = xdoc.GetElementsByTagName("initialInspection");
for (int i = 0; i < list.Count; i++)
{
XmlElement initialInspection = (XmlElement)xdoc.GetElementsByTagName("initialInspection")[i];
XmlElement initialInspector = (XmlElement)xdoc.GetElementsByTagName("userInspection")[i];
XmlElement dateTime = (XmlElement)xdoc.GetElementsByTagName("dateTime")[i];
propertyID = int.Parse(initialInspection.GetAttribute("propertyID"));
initialInspectorUsername = initialInspector.InnerText;
intialDateTime = DateTime.Parse(dateTime.InnerText);
}
rFile.Close();
}
的XML看起來是這樣的:
<?xml version="1.0" standalone="yes"?>
<initialInspections>
<initialInspection propertyID="1">
<userInspection>defaultadmin</userInspection>
<dateTime>07/11/2015 17:15:20</dateTime>
<inspectionNote>
<location>Dining Room</location>
<locationNote>Remove whole carpet, leave underlay</locationNote>
<CostCode>L1</CostCode>
<estimatedTime>5</estimatedTime>
</inspectionNote>
<inspectionNote>
<location>Other - See Notes</location>
<locationNote>On the marked area with orange spray paint.</locationNote>
<CostCode>B1</CostCode>
<estimatedTime>12</estimatedTime>
</inspectionNote>
</initialInspection>
</initialInspections>
任何幫助將非常感激。
去這個網站在這裏驗證XML文件。它有您需要首先解決這些XML錯誤的一些錯誤。 http://codebeautify.org/xmlvalidate你怎麼用這個'公共結構initialInspectionNotes'我個人會創建一個'類'然後我會創建一個'var lstNotes = new List()'然後在循環填充字段,確保您使用循環頂部的新構造以及循環底部的列表的.Add方法將循環內部的lstNotes對象添加到不同的列表 –
MethodMan
去編輯你的問題,爲什麼你應該改變你的XML以便它能夠基於'validate XML'免費在線工作 – MethodMan
@MethodMan我剛剛通過該網站運行我的文件,並表示它沒問題。 – DanielWoodward