正在使用 XDocument 解析 xml 文档
Parsing xml doc with XDocument
我正在尝试使用 XDocument 解析此 xml 文档,但不了解如何从 XDocument 的内部螺栓中提取数据。
节点如下所示:
<data name="GetOrdersMailMsg" xml:space="preserve">
<value>
SELECT Orders.buyersEmail,
Orders.emailMessage
FROM Orders
WHERE Orders.orderId = '{0}'
</value>
<comment>Get email message(s) to buyer</comment>
</data>
<data name="UpdateOrdersMailMsg" xml:space="preserve">
<value>
UPDATE Orders
SET Orders.buyersEmail = '{0}',
Orders.emailMessage = '{1}'
WHERE Orders.orderId = '{2}'
</value>
<comment>Update mail message to buyer</comment>
</data>
我需要每个节点的 "value"、"comment" 和 "data name"。我正在尝试以下代码:
xdoc = XDocument.Load(xmlFile);
//Get all nodes
List<XNode> xNodes = xdoc.DescendantNodes().ToList();
foreach (XNode node in xNodes)
{
XElement element = node as XElement;
if (null != element)
{
//For each orderProperty, get all attributes
foreach (XAttribute attribute in element.Attributes())
{
string name = attribute.Name.ToString();
string value = attribute.Value.ToString();
Debug.WriteLine("name:" + name);
Debug.WriteLine("value:" + value);
}
}
}
但它不是我想要的。谁能告诉我如何获取我需要的数据?
谢谢。
您的 XML 缺少根,因此实际上没有 XML。但我假设你只是没有 post 它。
您可以在根元素上使用 Elements()
搜索名为 data
的所有元素。从他们那里你可以得到 name
属性 Attribute()
和 value
元素 Element()
.
foreach (XElement xElement in xDocument.Root.Elements("data"))
{
Debug.WriteLine("name:" + xElement.Attribute("name").Value.ToString());
Debug.WriteLine("value:" + xElement.Element("value").Value.ToString());
}
我正在尝试使用 XDocument 解析此 xml 文档,但不了解如何从 XDocument 的内部螺栓中提取数据。
节点如下所示:
<data name="GetOrdersMailMsg" xml:space="preserve">
<value>
SELECT Orders.buyersEmail,
Orders.emailMessage
FROM Orders
WHERE Orders.orderId = '{0}'
</value>
<comment>Get email message(s) to buyer</comment>
</data>
<data name="UpdateOrdersMailMsg" xml:space="preserve">
<value>
UPDATE Orders
SET Orders.buyersEmail = '{0}',
Orders.emailMessage = '{1}'
WHERE Orders.orderId = '{2}'
</value>
<comment>Update mail message to buyer</comment>
</data>
我需要每个节点的 "value"、"comment" 和 "data name"。我正在尝试以下代码:
xdoc = XDocument.Load(xmlFile);
//Get all nodes
List<XNode> xNodes = xdoc.DescendantNodes().ToList();
foreach (XNode node in xNodes)
{
XElement element = node as XElement;
if (null != element)
{
//For each orderProperty, get all attributes
foreach (XAttribute attribute in element.Attributes())
{
string name = attribute.Name.ToString();
string value = attribute.Value.ToString();
Debug.WriteLine("name:" + name);
Debug.WriteLine("value:" + value);
}
}
}
但它不是我想要的。谁能告诉我如何获取我需要的数据?
谢谢。
您的 XML 缺少根,因此实际上没有 XML。但我假设你只是没有 post 它。
您可以在根元素上使用 Elements()
搜索名为 data
的所有元素。从他们那里你可以得到 name
属性 Attribute()
和 value
元素 Element()
.
foreach (XElement xElement in xDocument.Root.Elements("data"))
{
Debug.WriteLine("name:" + xElement.Attribute("name").Value.ToString());
Debug.WriteLine("value:" + xElement.Element("value").Value.ToString());
}