【发布时间】:2011-03-18 11:02:55
【问题描述】:
例如我有一个类似的xml
<books>
<book id="1">
<title id="11" name="Basic XML"/>
<price id="12" amount="500"/>
<quantity id="13" number="10"/>
</book>
</books>
可以将“Basic XML”一书的名称更新为“Basic XSLT”或使用 XSLT 更改任何节点的任何其他属性吗?如果是的话,谁能给我一些例子来说明如何做到这一点?
提前致谢。
【问题讨论】:
-
XSLT 用于将 XML 文件转换为不同的格式 - 听起来你想要的有点过头了。
-
好问题,+1。请参阅我的答案,以获得基于最基本 XSLT 设计模式的完整、简短和简单的解决方案——身份规则/模板的使用和覆盖。还提供了广泛的解释。
-
@sprenna:正如@Dimitre 的回答所显示的那样……但我同意@Oded:对于值替换,我会选择带有XPath 的节点并使用正确的DOM 方法。
-
@Alejandro: EEEEEEEWWWWWW 。 . .
-
@Dimitre:最佳方法实际上取决于“更新”的含义。如果这意味着从命令行“获取 XML 并序列化其他 XML 文档”,我会选择 XSLT。但是,如果这更像是那些数据库问题或 javascript DOM 或任何嵌入式环境,您或 XSLT 处理器必须调用解析器,执行“更新”然后序列化,我会选择 XPath 选择和 DOM 更新。当然,比值替换更复杂的过程肯定需要 XSLT 或 XQuery。