0

我有将 XML 导入数据库的要求,在使用应用程序后,将对这些数据进行一些处理,并且需要使用这些更新的值再次生成 XML。

我有需要导入和生成的 xml 的 XSD。两种 XML 的 XSD 将保持不变。

所以请建议我最好的方法来做到这一点。

书本.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                        <xs:element name="author">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="name" type="xs:string" />
                                    <xs:element minOccurs="0" name="first-name" type="xs:string" />
                                    <xs:element minOccurs="0" name="last-name" type="xs:string" />
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="price" type="xs:decimal" />
                    </xs:sequence>
                    <xs:attribute name="genre" type="xs:string" use="required" />
                    <xs:attribute name="publicationdate" type="xs:date" use="required" />
                    <xs:attribute name="ISBN" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Book.xml(已导入)

<?xml version="1.0" encoding="utf-8"?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.contoso.com/books">
  <book genre="Religious" publicationdate="2013-02-13" ISBN="SampleISBN">
    <title>Live and Let Live</title>
     <author>
      <name>Donald Allen</name>
      <first-name>Allen</first-name>
      <last-name>Donald</last-name>
    </author>
    <price>150</price>
  </book>
</bookstore>

现在假设在对上述 xml 数据进行一些处理后,特定书籍的价格更新为 180,现在如果我再次将其导出为 xml,那么更新后的价格应该如下示例 XML

Book.xml(需要生成)

<?xml version="1.0" encoding="utf-8"?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.contoso.com/books">
  <book genre="Religious" publicationdate="2013-02-13" ISBN="SampleISBN">
    <title>Live and Let Live</title>
     <author>
      <name>Donald Allen</name>
      <first-name>Allen</first-name>
      <last-name>Donald</last-name>
    </author>
    <price>180</price>
  </book>
</bookstore>
4

1 回答 1

0

您有 2 条主要路径:

  1. 使用 XSD 使用 xsd.exe 创建 C# 类,然后使用 XmlSerializer 将 xml 与 .NET 对象“转换”。查看文档

    xsd.exe yourxsd.xsd /classes

  2. 或者使用 LINQ to Xml 读取 Xml,进行更新并将 Xml 写回存储。(实际上不需要 XSD) 文档

如果您只更新价格,我建议 2,如果您需要访问更多字段,那么 1. 组合也是可能的。

于 2013-02-14T08:30:32.517 回答