在可视化C#项目中,我想将XML文档对象传递给方法。在该方法中,我应该读取我存储在XML Document对象中的值。无需创建XML文件。
感谢回复人员,我终于得到了我的代码。
//use following code when assign values to XMlDocument
XMLOBJECT()
{
XmlDocument xmlEmployee = new XmlDocument();
XmlElement xmlRoot = xmlEmployee.CreateElement("HR");
XmlElement xmlEmployees = xmlEmployee.CreateElement("Employee");
xmlEmployees.SetAttribute("Name", "XYZ");
xmlEmployees.SetAttribute("DOB", "12/12/2010");
xmlRoot.AppendChild(xmlEmployees);
xmlEmployee.AppendChild(xmlRoot);
Employee Emp=new EMployee();
Emp.retriveXMl(xmlEmployee);
}
在上面的代码中,我们创建了XML对象,现在我们可以传递Xml对象。
//Use Following code when assign values to Employee Object
class employee
{
retrivelXMl(XMLDOCUMENT xmlEmployeeobject)
{
string NAME;
int DOB;
XmlNodeList xmlEmployees = xmlEmployeeobject.SelectNodes("//Employee");
foreach (XmlElement Employee in xmlEmployees)
{
NAME = Employee.GetAttribute("Name"));
DOB = int.parse(Employee.GetAttribute("DOB"));
}
}
}
答案 0 :(得分:3)
您可以使用XmlNodeReader
访问XmlDocument
中的元素。
根据您对XmlDocument
XmlNodeReader
内容的处理方式,XmlDocument
可能还不够。
根据您提供的信息,我添加了一些通用代码,说明如何使用XmlNodeReader
开始访问public void WriteXmlDocument(XmlDocument document)
{
if (document == null)
{
throw new ArgumentNullException("document");
}
using (XmlNodeReader nodeReader = new XmlNodeReader(document))
{
while (nodeReader.Read())
{
Console.WriteLine(nodeReader.Value);
}
};
}
。
如果您在问题中添加更多详细信息,那么我们可能会根据您的需求为您提供更好的答案。
XmlNodeReader
- 编辑 -
详细说明XmlNode specificNode = document.SelectSingleNode("/NodeName/ChildNodeName");
if (specificNode != null)
{
XmlNodeReader specificNodeReader = new XmlNodeReader(specificNode);
while (specificNodeReader.Read())
{
Console.WriteLine(specificNodeReader.Value);
}
}
的可能性。您还可以选择特定节点并进行处理。
使用,您可以在下面访问特定的节点值。
{{1}}
示例将这些节点值写出到控制台,但是,您可以更改此值以将值写入变量。灵活性就在那里。
答案 1 :(得分:1)
我喜欢使用XmlTextReader和XmlTextWriter。它们非常易于使用。
请参阅this链接
修改强>
要使用XmlDocument,请使用
XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(xmlDocument.OuterXml));
如果您想使用验证,请使用
XmlValidatingReader xmlValidatingReader = new XmlValidatingReader(xmlTextReader);
答案 2 :(得分:0)
您是否尝试过查看LINQ to XML?