我将xml文件存储在一个字符串对象中,我将xml结构存储在c#中的局部变量字符串abcd 中。
<structure>
<a>Test Name</a>
<e>test address</e>
<c>
<c1>yyyy<c1>
<c2>xxxx</c2>
</c>
</structure>
如何使用c#读取(解析)此xml字符串并使用c#将标记c1,tag c2值标记为本地变量。
我试过
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(abcd);
XmlElement element = (XmlElement)xmldoc.GetElementById("a");
但我得到null value.how从xml结构中读取值并使用c#存储在局部变量中?
答案 0 :(得分:2)
您可以使用LINQ to XML:
var xDoc = XDocument.Parse(xml);
var a = xDoc.Descendants("a").First().Value;
var c1 = xDoc.Descendants("c1").First().Value;
var c2 = xDoc.Descendants("c2").First().Value;
答案 1 :(得分:2)
Linq2Xml更容易使用。
var xElem = XElement.Parse(abcd);
var a = xElem.Element("a").Value;
var c = xElem.Element("c").Element("c1").Value;
答案 2 :(得分:0)
string test = " <structure><a>Test Name</a><e>test address</e><c><c1>yyyy</c1><c2>xxxx</c2></c></structure>";
DataSet dataSet = new DataSet();
dataSet.ReadXml(new StringReader(test));
DataTable dt11 = new DataTable();
DataTable dt12 = new DataTable();
//return single table inside of dataset
if (dataSet.Tables.Count > 1)
{
dt11 = dataSet.Tables[0];
dt12 = dataSet.Tables[1];
}
答案 3 :(得分:0)
你有没看过LINQ to XML呢?如果没有,请参阅http://msdn.microsoft.com/en-us/library/bb387098.aspx
上的参考答案 4 :(得分:0)
非常接近!将其更改为:
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(abcd);
XmlElement element = xmldoc.Root.Element("a").Value;
答案 5 :(得分:0)
如果我了解您正在尝试访问xml文档中的每个不同标记,那么您应该使用GetElementsByTagName
而不是GetElementById
。这将返回一个XmlNodeList
对象,其中包含具有该标记名称的所有节点,您可以将第一个作为NodeList.Item(0).InnerXml;
答案 6 :(得分:0)
要在接受的答案中使用XDocument类,您需要添加:
# First assign your "id"s to an R object.
# Here's a hypothetical example:
id <- c("a","b","b","c","c","c","d","d","d","d")
#To return ALL MINUS ONE duplicated values:
id[duplicated(id)]
## [1] "b" "c" "c" "d" "d" "d"
#To return ALL duplicated values by specifying fromLast argument:
id[duplicated(id) | duplicated(id, fromLast=TRUE)]
## [1] "b" "b" "c" "c" "c" "d" "d" "d" "d"
#Yet another way to return ALL duplicated values, using %in% operator:
id[ id %in% id[duplicated(id)] ]
## [1] "b" "b" "c" "c" "c" "d" "d" "d" "d"
和
*从解决方案资源管理器中,找到“参考”
*右键点击“添加参考”
*搜索XML的装配(Ctrl E)
*选择xml.ling项目
*单击左侧显示的复选框
*选择好的