c# - 从 XML 中删除 xs:schema
问题描述
我在 C# 中有简单的 web 服务,可以为我的一个客户生成带有产品提要的 XML。
{
public SqlConnection con;
public DataSet ds;
public string query;
public SqlCommand sqlcom;
public XmlReader reader;
public string xml;
[WebMethod]
public DataSet GetProduct()
{
con = new SqlConnection(@"Data Source=;Initial Catalog=;Persist Security Info=True;User ID=sa;pwd=;");
query = @"
select
1 as Tag,
null as Parent,
null as [Katalog!1],
null as [Produkt!2!NumerKatalogowy!element],
null as [Produkt!2!Nazwa!Element],
null as [Produkt!2!NazwaDluga!Element],
null as [Produkt!2!Opis!CDATA],
null as [Produkt!2!VAT!Element],
null as [Produkt!2!EAN!Element],
null as [Produkt!2!StrukturaTowarowa!Element],
null as [Produkt!2!Stan!Element],
null as [Produkt!2!CenaSRP!Element],
null as [Multimedia!3!Zdjecie_Glowne!element],
null as [Multimedia!3!Zdjecie_Dodatkowe!element],
null as [Multimedia!3!Zdjecie_Dodatkowe!element],
null as [Multimedia!3!Zdjecie_Dodatkowe!element],
null as [Multimedia!3!Zdjecie_Dodatkowe!element],
null as [Multimedia!3!Zdjecie_Dodatkowe!element],
null as [Produkt!2!Producent!Element],
null as [Produkt!2!Marka!Element],
null as [Atrybut!4!Waga!Element],
null as [Atrybut!4!Pasuje_do_modelu!Element],
null as [Atrybut!4!Gwarancja!Element],
null as [Atrybut!4!Szerokosc!Element],
null as [Atrybut!4!Wysokosc!Element],
null as [Atrybut!4!Głębokosc!Element],
null as [Atrybut!4!Długosc_kabla!Element],
null as [Atrybut!4!Natezenie!Element],
null as [Atrybut!4!Wtyczka_wejsciowa!Element],
null as [Atrybut!4!Wtyczka_wyjsciowa!Element],
null as [Atrybut!4!Typ_urzadzenia!Element],
null as [Atrybut!4!Kompatybilnosc!Element],
null as [Atrybut!4!Pojemnosc!Element],
null as [Atrybut!4!Napiecie!Element]
Union all
/* some selects */
for xml explicit
";
sqlcom = new SqlCommand(query, con);
con.Open();
ds = new DataSet();
reader = sqlcom.ExecuteXmlReader();
ds.ReadXml(reader, XmlReadMode.Auto);
reader.Close();
con.Close();
return ds;
}
}
这给了我 XML 文件,但在标题中有我必须删除的xs:schema 。我该怎么做?XmlReadMode 的更改模式不能解决它。同样在每个产品上,我都有我想删除的标签diffgr 。你能帮我解决这个问题吗?
解决方案
好的,
这是我现在得到的 XML 输出片段:
<DataSet xmlns="test">
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="Katalog">
<xs:element name="Katalog" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Produkt">
<xs:complexType>
<xs:sequence>
<xs:element name="NumerKatalogowy" type="xs:string" minOccurs="0"/>
<xs:element name="Nazwa" type="xs:string" minOccurs="0"/>
<xs:element name="NazwaDługa" type="xs:string" minOccurs="0"/>
<xs:element name="Opis" type="xs:string" minOccurs="0"/>
<xs:element name="VAT" type="xs:string" minOccurs="0"/>
<xs:element name="EAN" type="xs:string" minOccurs="0"/>
<xs:element name="StrukturaTowarowa" type="xs:string" minOccurs="0"/>
<xs:element name="Stan" type="xs:string" minOccurs="0"/>
<xs:element name="CenaSRP" type="xs:string" minOccurs="0"/>
<xs:element name="Producent" type="xs:string" minOccurs="0"/>
<xs:element name="Marka" type="xs:string" minOccurs="0"/>
<xs:element name="Multimedia" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Zdjęcie_Główne" type="xs:string" minOccurs="0"/>
<xs:element name="Zdjęcie_Dodatkowe" nillable="true" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent msdata:ColumnName="Zdjęcie_Dodatkowe_Text" msdata:Ordinal="0">
<xs:extension base="xs:string"> </xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Atrybut" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Waga" type="xs:string" minOccurs="0"/>
<xs:element name="Pasuje_do_modelu" type="xs:string" minOccurs="0"/>
<xs:element name="Gwarancja" type="xs:string" minOccurs="0"/>
<xs:element name="Szerokość" type="xs:string" minOccurs="0"/>
<xs:element name="Wysokość" type="xs:string" minOccurs="0"/>
<xs:element name="Głębokość" type="xs:string" minOccurs="0"/>
<xs:element name="Długość_kabla" type="xs:string" minOccurs="0"/>
<xs:element name="Natężenie" type="xs:string" minOccurs="0"/>
<xs:element name="Wtyczka_wejściowa" type="xs:string" minOccurs="0"/>
<xs:element name="Wtyczka_wyjściowa" type="xs:string" minOccurs="0"/>
<xs:element name="Typ_urządzenia" type="xs:string" minOccurs="0"/>
<xs:element name="Kompatybilność" type="xs:string" minOccurs="0"/>
<xs:element name="Pojemność" type="xs:string" minOccurs="0"/>
<xs:element name="Napięcie" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Katalog xmlns="">
<Produkt diffgr:id="Produkt1" msdata:rowOrder="0" diffgr:hasChanges="inserted" msdata:hiddenProdukt_Id="0">
<NumerKatalogowy>449 AMBRER</NumerKatalogowy>
<Nazwa>Żel antybakteryjny do rąk AMBER 75 % 100 ml </Nazwa>
<NazwaDługa>Żel antybakteryjny do rąk AMBER 75 % 100 ml </NazwaDługa>
<Opis>D-panthenol – provitamina B5 jako składnik pielęgnacyjny, intensywnie nawilża, zmiękcza i uelastycznia naskórek. Skutecznie łagodzi podrażnienia, działa kojąco i osłaniającą na skórę.<br/> <br/> Gliceryna o działaniu nawilżającym, a także poprawiającym elastyczność skóry. Żel dzięki wysokiej zawartości alkoholu 75% wykazuje skuteczne działanie antybakteryjne.</Opis>
<VAT>23.00</VAT>
<EAN>5906841042276</EAN>
<Stan>1568</Stan>
<Multimedia diffgr:id="Multimedia1" msdata:rowOrder="0" diffgr:hasChanges="inserted" msdata:hiddenMultimedia_Id="0" msdata:hiddenProdukt_Id="0">
<Atrybut diffgr:id="Atrybut1" msdata:rowOrder="0" diffgr:hasChanges="inserted" msdata:hiddenMultimedia_Id="0">
<Waga>0.300</Waga>
</Atrybut>
</Multimedia>
</Produkt>
<Produkt diffgr:id="Produkt2" msdata:rowOrder="1" diffgr:hasChanges="inserted" msdata:hiddenProdukt_Id="1">
<NumerKatalogowy>APEDG05000NEG</NumerKatalogowy>
<Nazwa>PowerBank Golf Edge 5000 kolor czarny </Nazwa>
<NazwaDługa>PowerBank Golf Edge 5000 kolor czarny GOLF</NazwaDługa>
<Opis><h3>PowerBank Golf Edge 5000 kolor czarny</h3> <p>Praktyczne urządzenie w razie wyczerpania się baterii telefonu. Łatwy do przenoszenia - lekki i kompaktowy. Pakiet zawiera kabel USB -> micro USB do łatwego ładowania ze złącza komputera lub innego urządzenia.</p></Opis>
<VAT>23.00</VAT>
<EAN>6422505104450</EAN>
<StrukturaTowarowa>21/18/5/3</StrukturaTowarowa>
<Stan>31</Stan>
<CenaSRP>59.9900</CenaSRP>
<Producent>GOLF</Producent>
<Marka>GOLF</Marka>
<Multimedia diffgr:id="Multimedia2" msdata:rowOrder="1" diffgr:hasChanges="inserted" msdata:hiddenMultimedia_Id="1" msdata:hiddenProdukt_Id="1">
<Zdjęcie_Główne>https://lamelbrands.com/public/assets/produkty/GOLF/APEDG05000NEG.jpg</Zdjęcie_Główne>
<Zdjęcie_Dodatkowe diffgr:id="Zdjęcie_Dodatkowe1" msdata:rowOrder="0" diffgr:hasChanges="inserted" msdata:hiddenMultimedia_Id="1">https://lamelbrands.com/public/assets/produkty/GOLF/APEDG05000NEG2.jpg</Zdjęcie_Dodatkowe>
<Atrybut diffgr:id="Atrybut2" msdata:rowOrder="1" diffgr:hasChanges="inserted" msdata:hiddenMultimedia_Id="1">
<Waga>0.210</Waga>
<Gwarancja>24 miesiące</Gwarancja>
<Szerokość>90</Szerokość>
<Wysokość>178</Wysokość>
<Głębokość>27</Głębokość>
<Typ_urządzenia>Li-ion</Typ_urządzenia>
<Kompatybilność>Uniwersalny</Kompatybilność>
<Pojemność>5000 mAh</Pojemność>
<Napięcie>5 V</Napięcie>
</Atrybut>
</Multimedia>
</Produkt>
</Katalog>
我希望它看起来像什么:
<Katalog xmlns="">
<Produkt>
<NumerKatalogowy>449 AMBRER</NumerKatalogowy>
<Nazwa>Żel antybakteryjny do rąk AMBER 75 % 100 ml </Nazwa>
<NazwaDługa>Żel antybakteryjny do rąk AMBER 75 % 100 ml </NazwaDługa>
<Opis>D-panthenol – provitamina B5 jako składnik pielęgnacyjny, intensywnie nawilża, zmiękcza i uelastycznia naskórek. Skutecznie łagodzi podrażnienia, działa kojąco i osłaniającą na skórę.<br/> <br/> Gliceryna o działaniu nawilżającym, a także poprawiającym elastyczność skóry. Żel dzięki wysokiej zawartości alkoholu 75% wykazuje skuteczne działanie antybakteryjne.</Opis>
<VAT>23.00</VAT>
<EAN>5906841042276</EAN>
<Stan>1568</Stan>
<Multimedia >
<Atrybut >
<Waga>0.300</Waga>
</Atrybut>
</Multimedia>
</Produkt>
<Produkt >
<NumerKatalogowy>APEDG05000NEG</NumerKatalogowy>
<Nazwa>PowerBank Golf Edge 5000 kolor czarny </Nazwa>
<NazwaDługa>PowerBank Golf Edge 5000 kolor czarny GOLF</NazwaDługa>
<Opis><h3>PowerBank Golf Edge 5000 kolor czarny</h3> <p>Praktyczne urządzenie w razie wyczerpania się baterii telefonu. Łatwy do przenoszenia - lekki i kompaktowy. Pakiet zawiera kabel USB -> micro USB do łatwego ładowania ze złącza komputera lub innego urządzenia.</p></Opis>
<VAT>23.00</VAT>
<EAN>6422505104450</EAN>
<StrukturaTowarowa>21/18/5/3</StrukturaTowarowa>
<Stan>31</Stan>
<CenaSRP>59.9900</CenaSRP>
<Producent>GOLF</Producent>
<Marka>GOLF</Marka>
<Multimedia>
<Zdjęcie_Główne>https://lamelbrands.com/public/assets/produkty/GOLF/APEDG05000NEG.jpg</Zdjęcie_Główne>
<Zdjęcie_Dodatkowe>https://lamelbrands.com/public/assets/produkty/GOLF/APEDG05000NEG2.jpg</Zdjęcie_Dodatkowe>
<Atrybut >
<Waga>0.210</Waga>
<Gwarancja>24 miesiące</Gwarancja>
<Szerokość>90</Szerokość>
<Wysokość>178</Wysokość>
<Głębokość>27</Głębokość>
<Typ_urządzenia>Li-ion</Typ_urządzenia>
<Kompatybilność>Uniwersalny</Kompatybilność>
<Pojemność>5000 mAh</Pojemność>
<Napięcie>5 V</Napięcie>
</Atrybut>
</Multimedia>
</Produkt>
</Katalog>
推荐阅读
- python - 向没有 LoginRequiredMixin / django 的未登录用户显示登录页面
- module - 如何在 Odoo 13 Enterprise 中显示更多的 Employee 字段?
- python - Plotly Express 条形图竞赛未按预期工作
- java - 在 BigTable 中使用 hbase-orm
- vue.js - 使用 vue-resource 从 Vue.js 中的响应标头获取 HTTP 协议版本
- sql - ORA-00907 计数中缺少右括号
- mysql - 在sql中获取列时间大于当前时间的记录
- python - WebDriverWait 有效,但 page_source 仍返回一半呈现的 HTML
- variables - 你能解释一下传递价值的正确方法吗?(数组到
- ruby-on-rails - Rails:每次上传的活动存储has_many关联回调