【发布时间】:2015-12-08 17:29:18
【问题描述】:
我从 web 服务获取 XML,如下所示:
<CLASSXml>
<CalculationIndex>
<RunDesc>NormalCalc</RunDesc>
</CalculationIndex>
<GlobalData>
<CalcIdent>
<CalcUId>CLASS:20151203:19335012:000000000000:203:CS:CZK:349074</CalcUId>
<CalcNo>2454307111</CalcNo>
<CustomNo>349074</CustomNo>
<CalcVer>2300</CalcVer>
<XMLVer>23.00.01</XMLVer>
<ClassBuild>23.00.04.03</ClassBuild>
<SAXIFVersion>6.2</SAXIFVersion>
(实际情况要长得多)
因此,通常它位于具有多个子元素和子元素的父元素上。
我需要更改此 XML 中每个元素的名称,例如 <CalculationIndex> 或 <RunDesc> 或 <CLASSXml> 等等,并在它之前添加 ns2: 所以在这种情况下为 <ns2:CalculationIndex> 或 <ns2:RunDesc> 或 <ns2:CLASSXml>
有没有办法通过在它之前添加一些字符串来获取整个 XML 并在 之间编辑每个部分的名称?
【问题讨论】:
-
有什么理由不简单地为根标签设置默认命名空间?类似于:xmlns="xml.example.com/ns/library"
-
为什么不在根元素上声明命名空间? (假设它是针对整个文件的)元素的命名空间前缀是任意的。
-
我得到的 XML 来自 web 服务,我无权访问来自那里的更改数据。 @SamuelÅslund 你的建议看起来很聪明,你能提供一些示例代码吗?
-
w3schools.com/xml/xml_namespaces.asp 我听说它们并不总是 100% 准确,但大多数时候它们对我来说已经足够好了。
标签: xml