<root xmlns:test="url" test:attr1="10" test:attr2="someValue>
<elementwrapper>
<secondElementwrapper>
<element>someValue</element>
<differentelement>anotherValue</differentelement>
</secondElementwrapper>
</elementwrapper>
</root>
以下类是由:省略elementwrappers和获取XML根值
public class XmlEntities
{
[XmlRoot("root")]
public class Root
{
[XmlElement("elementwrapper")]
public Elementwrapper Elementwrapper{ get; set; }
}
public class Elementwrapper
{
[XmlElement("secondElementwrapper")]
public SecondElementwrapper SecondElementwrapper{ get; set; }
}
public class Values
{
[XmlElement("element")]
public string Element{ get; set; }
[XmlElement("differentelement")]
public string Differentelement{ get; set; }
}
}
这里是我进行序列化和反序列化XML:
var reader = XmlReader.Create(url);
var xmlRecord = new XmlEntities.Root();
try
{
var serializer = new XmlSerializer(typeof(XmlEntities.Root));
xmlRecord = (XmlEntities.Root)serializer.Deserialize(reader);
reader.Close();
}
catch (Exception e) { }
- 我想访问xmlRecord.Element而不是xmlRecord.Elementwrapper.Values.Element
- 怎么办我得到的测试:attr1值?*
如果我删除类Elementwrapper和根,xmlRecord返回null。 [XmlAttribute]在Root类里面得到attr1的值对我不起作用。
谢谢!
编辑: 该元素是一个复制/粘贴错误的做法。修正了。我还补充道:测试attr1的盈方,忘了那个。
编辑: 加入以下作为SGK提到的,根类里面,让我来访问属性
[XmlAttribute("attr1", Namespace = "url")]
public string attr { get; set; }
编辑:而且是有办法的类不同的地图?所以我可以直接访问xmlRecord.Element?
编辑:@TonyStark似乎我想要接近不同的方式,但是,然后再次这已经工作,我只需要访问元素槽节点(xmlRecord.elementwrapper.secondelementwrapper.element)为那些是想知道。
要访问根的属性我简单地使用:xmlRecord.attr后,我添加了其上面写的xmlattribute。
的因素是复制/粘贴错误行为。修正了。 我还补充说:attr1和2的测试盈方,忘了那个。 是否有另一种方式直接访问xmlRecord的值?有没有办法以不同的方式映射它? – user3603865 2014-09-24 10:04:10
更新回答使用命名空间 – 2014-09-24 10:11:16
命名空间允许我访问属性,谢谢! – user3603865 2014-09-24 10:28:05