我拥有具有不同节点和属性的巨大xml文件。我用grep -c
来计算具有特定类型的产品。这里是我迄今所做的:根据元素属性在命令行中拆分xml文件
grep -c "</products>" products.xml // output : 200023
grep -c '<product type="cloths"' products.xml // output : 8039
所以我需要提取与型布料如在new.xml文件树中的所有产品无所有其他属性,这样我可以导入new.xml文件导入数据库:
<?xml version="1.0"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<catalog>
<product type="cloths" product_image="cardigan.jpg">
<catalog_item gender="Men's">
<item_number>QWZ5671</item_number>
<price>39.95</price>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Large">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
</catalog_item>
<catalog_item gender="Women's">
<item_number>RRX9856</item_number>
<price>42.50</price>
<size description="Small">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Large">
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Extra Large">
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
</catalog_item>
</product>
</catalog>
XSLT对此非常理想。这对你来说是一种选择吗? – kjhughes
不幸的是,我没有XSLT的庞大的文件,我有。不知道是否有任何方法来生成这样的文件!对于XML世界来说很抱歉。谢谢 – Mtaly
为您的任务编写XSLT会很简单。如果你有XSLT代码,你能运行XSLT吗? – kjhughes