我有一个类有一些属性,其中一个属性想要获取或设置XML文本,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<SaveCode>QuiddityVer</SaveCode>
<IsMainProject>fals</IsMainProject>
<DesignerItems>
<DesignerItem>
<Quiddity>Play</Quiddity>
<Name>Node_Play1</Name>
<LoopBodyInDesignerCanvas />
</DesignerItem>
</Root>
set的适当变量类型是什么,并获得此xml表达式?
我班上的财产是这样的:
privte String _myxmlExpresion;
public String myxmlExpresion
{
get
{
return _myxmlExpresion;
}
set
{
_myxmlExpresion= value;
}
}
我的项目是multiTab,每个选项卡都有DesignerItems来显示其中的一些节点(某些东西,如Visual DialPlan或Visual VXML Designer),而某些节点具有在我单击时打开一个新选项卡的属性,并且我在XML文件中保存并打开此选项卡,但在这里我不希望这个新选项卡添加到额外的xml文件,我想将它保存在我的属性中。
答案 0 :(得分:2)
您可以使用纯字符串或XDocument。
或者,您也可以使用XmlDocument。 (感谢msmucker0527)
答案 1 :(得分:0)
创建用于保存xml数据的类:
public class Foo
{
public string SaveCode { get; set; }
public bool IsMainProject { get; set; }
public List<DesignerItem> DesignerItems { get; set; }
}
public class DesignerItem
{
public string Quiddity { get; set; }
public string Name { get; set; }
public string LoopBodyInDesignerCanvas { get; set; }
}
解析你的xml:
XElement root = XElement.Parse(xml);
var foo = new Foo()
{
SaveCode = (string)root.Element("SaveCode"),
IsMainProject = (bool)root.Element("IsMainProject"),
DesignerItems = root.Element("DesignerItems")
.Elements("DesignerItem")
.Select(di => new DesignerItem()
{
Quiddity = (string)di.Element("Quiddity"),
Name = (string)di.Element("Name"),
LoopBodyInDesignerCanvas = (string)di.Element("LoopBodyInDesignerCanvas")
}).ToList()
};
将已解析的对象存储为类型Foo
的属性(当然,我认为有一个更好的数据名称,您的xml保存)。这将为您提供强类型语言的所有优势:
if (yourObject.Foo.IsMainProject)
// ...
BTW 你在xml中有拼写错误 - DesignerItems
元素没有结束标记。并且false
值存在拼写错误。
答案 2 :(得分:0)
其中一种合适的方法是将所有新标签保存为单独的文件,并在我们的属性中使用新的标签地址来打开和保存XML文档。