2
<Employees>
  <Product_Name>
    <hello1>product1</hello1>
    <hello2>product2</hello2>
    <hello3>product3</hello3>
    <hello4>product4</hello4>
  </Product_Name>
  <product_Price>
    <hello1>111</hello1>
    <hello2>222</hello2>
    <hello3>333</hello3>
    <hello4>444</hello4>
  </product_Price>
</Employees>

是否可以使用 C# 将以下 XML 转换为如下所示的 XML。我尝试使用删除功能,但没有奏效。我也尝试获取根节点的值。没用

  <Product_Name>
    <hello1>product1</hello1>
    <hello2>product2</hello2>
    <hello3>product3</hello3>
    <hello4>product4</hello4>
  </Product_Name>
  <product_Price>
    <hello1>111</hello1>
    <hello2>222</hello2>
    <hello3>333</hello3>
    <hello4>444</hello4>
  </product_Price>
4

3 回答 3

3

如果您只想获取内部 xml,可以使用 XmlReader 的ReadInnerXml.innerXML 作为字符串获取(跳过根节点)。

var xmlReader = XElement.Load("data.xml").CreateReader();
xmlReader.MoveToContent();
string innerXml = xmlReader.ReadInnerXml();
于 2012-11-13T01:57:55.507 回答
2

如果您有权访问 Linq to XML,您应该XDocument.
警告:我相信你的 xml 格式错误 - 你应该有类似的东西:

<?xml version="1.0" encoding="utf-8"?>

将第一个 xml 标记添加到 xml。

string xml = @"<?xml version="1.0" encoding="utf-8"?>
               <Employees>
                 <Product_Name>
                    <hello1>product1</hello1>
                    <hello2>product2</hello2>
                    <hello3>product3</hello3>
                    <hello4>product4</hello4>
                 </Product_Name>
                 <product_Price>
                    <hello1>111</hello1>
                    <hello2>222</hello2>
                    <hello3>333</hello3>
                    <hello4>444</hello4>
                 </product_Price>
              </Employees>";

XDocument xDoc = XDocument.Parse(xml);

// get the elements
var rootElements = xDoc.Root.Elements();

或者,您可以从文件加载 xml:

XDocument xDoc = XDocument.Load("xmlFile.xml");
于 2012-11-13T00:39:27.807 回答
1

您可以将其存储为格式正确的XmlNodeList。这是一个如何做到这一点的工作示例:

XmlDocument xml= new XmlDocument();
        xml.LoadXml(@"<Employees>
                      <Product_Name>
                        <hello1>product1</hello1>
                        <hello2>product2</hello2>
                        <hello3>product3</hello3>
                        <hello4>product4</hello4>
                      </Product_Name>
                      <product_Price>
                        <hello1>111</hello1>
                        <hello2>222</hello2>
                        <hello3>333</hello3>
                        <hello4>444</hello4>
                      </product_Price>
                    </Employees>");
        var nodeList = xml.SelectNodes("Employees");
        foreach (XmlNode node in nodeList)
        {
           Console.WriteLine(node.InnerXml); //this will give you your desired result
        }
于 2012-11-13T00:27:27.287 回答