使用 XSLT 将其他命名空间/架构位置添加到 XML 文件
我想将: 转换
<ppx xmlns="http://www.p.com/ppx/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.p.com/ppx/1 http://www.p.com/ppx/1/ppx.xsd">
<p></p></ppx>
为:
<ppx xmlns="http://www.p.com/ppx/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ppxx="http://www.m.com/mExt/v1"
xmlns:ppxtpx="http://www.m.com/mExt/v3"
xsi:schemaLocation="http://www.p.com/ppx/1 http://www.p.com/ppx/1/ppx.xsd
http://www.m.com/mExt/v1 http://www.m.com/mExt/v1/ppxv1.xsd
http://www.m.com/mExt/v3 http://www.m.com/mExt/v3/ppxv3.xsd">
<p></p></ppx>
我需要将一些命名空间声明及其关联的 schemaLocations 添加到现有的 XML 文件中,而不更改该 XML 中的其他任何内容。
I want to convert:
<ppx xmlns="http://www.p.com/ppx/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.p.com/ppx/1 http://www.p.com/ppx/1/ppx.xsd">
<p></p></ppx>
into:
<ppx xmlns="http://www.p.com/ppx/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ppxx="http://www.m.com/mExt/v1"
xmlns:ppxtpx="http://www.m.com/mExt/v3"
xsi:schemaLocation="http://www.p.com/ppx/1 http://www.p.com/ppx/1/ppx.xsd
http://www.m.com/mExt/v1 http://www.m.com/mExt/v1/ppxv1.xsd
http://www.m.com/mExt/v3 http://www.m.com/mExt/v3/ppxv3.xsd">
<p></p></ppx>
I need to add a few namespace declarations and their associated schemaLocations to an existing XML file without changing anything else in that XML.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
原则上这很简单:它只需要一个标准的“修改后的身份模板”模式:
但是,它可能会变得更加复杂,具体取决于输入与您向我们展示的示例的差异程度。例如,如果根元素并不总是被命名为
ppx
,或者如果事先不知道要添加的命名空间。所以你可能需要解释问题的更多细节In principle it's easy: it just needs a standard "modified identity template" pattern:
However, it could get a bit more complicated depending on how much the input can vary from the example you have shown us. For example if the root element will not always be named
ppx
, or if the namespaces to be added are not known in advance. So you may need to explain more details of the problem