Windchill 基本知识 > Windchill 搜索 > 搜索参考 > XML 文档搜索
  
XML 文档搜索
* 
仅当 wt.index.enableXMLTagSearch 特性设置为 true 时,以下主题适用。默认情况下,此特性设置为 false
如果安装并启用了 Windchill Index Search,默认情况下会为 XML 文件建立索引。您可以针对 XML 内容 (XML 标记之间的值) 进行标准关键字搜索,从而搜索 XML 文档。
但是,如果 wt.index.enableXMLTagSearch 特性设置为 true,则 Windchill 将为 XML 内容、标记和属性建立索引。因此,将为 XML 文档中的所有标记名称和内容建立索引,并可使用“关键字”字段进行搜索。
例如,您上载一个包含以下内容的 XML 文档:
<title>“部件目录”</title>
“目录”或“标题”的关键字搜索返回 XML 文档。
要限制对 XML 文档的关键字搜索,您可以输入 xml:,后跟专用查询字符串。
* 
只能使用英语执行 XML 搜索。执行 XML 作用域索引时不存在语言处理。
存在无效的 XML 时,Windchill 无法为 XML 文档内容建立索引。在这些情况下,仅可通过 XML 文档的“名称”属性和“编号”属性对其进行搜索。
执行专用 xml: 搜索时应用关键字规则。例如,允许使用通配符并使用词干搜索。有关详细信息,请参阅关键字搜索规则
要执行专门的 xml: 搜索,“搜索模式”首选项必须设置为“简单”,且 wt.index.enableXMLTagSearch 特性必须设置为 true
XML 标记搜索
您可以使用以下格式针对标记名称和标记内容进行搜索:
xml:tag
xml:tag(content)
您还可以组合使用这些字符串来搜索 XML 层次结构的多个级别。按层次结构搜索时,以下规则适用:
您可以搜索任意数量级别的深度。
使用冒号字符 (":") 分隔层次结构等级
xml:tag(content):tag(content)
(content) 内的字符串通过 OR 运算符进行连接。
不需要为层次结构中的每个级别指定一个标记。
即使层次结构内存在中间标记,您也可以搜索内容
只要内容嵌套在标记中,您就可以在层次结构内的任何位置包括字符串。
您必须遵循层次结构。
例如,您上载以下 XML 文件:
您可以使用以下任何一个关键字搜索来返回文件:
xml:catalog
xml:cat*
xml:page
xml:spring(gloves)
xml:spring(outdoor):page(soil gloves)
xml:catalog:spring
xml:catalog:spring:title(sales)
xml:catalog(garden tools soil winter)
catalog garden tools soil winter
但是,以下搜索失败:
关键字
失败原因
xml:garden
不能单独通过内容进行搜索。内容必须包含在括号内并跟随一个标记名称。
如果不想在搜索中包括一个标记,请移除 xml: 修饰符并执行基本关键字搜索。
解决方法:
xml:spring(garden) xml:spring:title(garden) garden
xml:catalog(garden)item(gloves)
必须在层次结构级别之间使用冒号。
解决方法:
xml:catalog(garden):item(gloves)
xml:caption(winter):catalog(sales)
xml:caption(sales)
层次结构搜索必须在一个后跟嵌套级别的较高级别开始。不能一个在后跟较高级别的嵌套级别开始。
CAPTION 标记嵌套在 CATALOG 中。
“销售”在标记层次结构中高于 CAPTION。
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<CAPTION>Goodbye, Winter!</ITEM>
解决方法:
xml:catalog(sales):caption(winter) xml:catalog(sales winter) xml:catalog(sales winter):caption xml:catalog:caption(winter)
xml:title(potting soil)
如果您将一个标记名称与不是直接位于标记内的内容进行配对,该内容必须嵌套在指定标记中。
在示例 XML 中,“potting soil”是嵌套 ITEM 标记的内容。TITLE 标记在层次结构中处于较高级别。但是,TITLE 不是 ITEM 标记层次结构的一部分。
ITEM 标记层次结构为 CATALOG > SPRING > PAGE > ITEM:
<CATALOG>
<SPRING>
<TITLE>Garden Sales</TITLE>
<PAGE>
<ITEM>Potting Soil</ITEM>
解决方法:
xml:page(potting soil) xml:catalog(potting soil) xml:catalog:page(potting soil) xml:catalog:spring:page:item(potting soil)
xml:caption(winter):item(soil)
不能搜索位于同一层次结构级别的两个标记:
<PAGE>
<CAPTION>Goodbye, Winter!</CAPTION>
<ITEM>Potting Soil</ITEM>
解决方法:
xml:page(winter):item(soil) xml:page(winter soil) xml:caption(winter) xml:item(soil)
XML 属性搜索
可以使用以下格式针对属性名称和属性值进行搜索:
xml:@attribute
xml:@attribute(value)
* 
不能将不同的属性名称与值相结合。值必须属于该属性。
您还可以组合使用这些字符串来搜索 XML 层次结构的多个级别。按层次结构搜索时,以下规则适用:
您可以搜索任意数量级别的深度。
使用冒号字符 (":") 分隔层次结构等级
xml:@attribute(value):@attribute(value)
(value) 内的字符串通过 OR 运算符连接。
不需要为层次结构中的每个级别指定一个属性。
您必须遵循层次结构。
例如,您上载以下 XML 文件:
您可以使用以下任何一个关键字搜索来返回文件:
xml:@month
xml:@month(ma*)
xml:@color(pink)
xml:@number:@color
xml:@status(released):@number:@id(98821c56)
march color pink 98821c56
但是,以下搜索会失败:
xml:pink
不能单独通过值来搜索。值必须括在括号中并跟随一个属性。
如果不想在搜索中包括属性,移除 xml: 修改符并执行基本关键字搜索。
解决方法:
xml:@color(pink) xml:@month:@color(pink) pink
xml:@month(march april)@color(pink)
必须在层次结构级别之间使用冒号。
解决方法:
xml:@month(march april):@color(pink)
xml:@status(98821c56)
与标记和内容对不同,您不能搜索嵌套的值。
换句话说,您不能将属性名称和嵌套属性值混合搭配。
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
<ITEM id="98821c56">Potting Soil</ITEM>
解决方法:
xml:@status:@id(98821c56) xml:@id(98821c56)
xml:@number(12):@status(released)
层次结构搜索必须在一个后跟嵌套级别的较高级别开始。不能以嵌套级别开始然后搜索层次结构中更高级别的属性或值。
<CATALOG status="Released">
<SPRING month="March, April, May">
<PAGE number="12">
解决方法:
xml:@status(released):@number(12) xml:@status(released):@number xml:@status:@number(12)
xml:@alias(garden):@number(12)
不能在同一层次结构级别上搜索不同标记内的两个属性:
<CATALOG status="Released">
<SPRING month="March, April, May">
<TITLE alias="Spring Garden Catalog">Garden Sales</TITLE>
<LINE>Outdoor_Tools</LINE>
<PAGE number="12">
解决方法:
xml:@alias(garden) xml:@number(12)
组合的标记和属性搜索
可以结合上方的搜索来根据 XML 标记、内容、属性和属性值来进行搜索。
可以使用以下任何一种格式:
xml:tag(content)@attribute(value)
xml:tag@attribute
xml:tag(content)@attribute
xml:tag@attribute(value)
可以使用冒号 (:) 遍历 XML 层次结构。层次结构搜索必须遵循上述相同规则。
例如,您上载以下 XML 文件:
您可以使用以下任何一个关键字搜索来返回文件:
xml:spring@month(april)
xml:catalog(garden soil gloves)@status(released)
xml:page@number(12):item@id(98821c56)
xml:catalog:@month(april):caption(goodbye)
xml:catalog(gloves soil):page@number(12):caption(goodbye)
xml:spring(garden tools):@alias
catalog march spring pink 98821c56
但是,以下搜索会失败:
xml:item(pink)
不能将标记名称与属性值配对。
解决方法:
xml:item@color(pink) item pink
xml:@id(potting soil)
不能将属性名称与标记内容进行配对。
解决方法:
xml:item(potting soil)@id id potting soil
xml:spring@color(pink)
不能将一个标记名称与其他标记上指定的属性进行配对。
解决方法:
xml:item@color(pink) xml:spring:@color(pink)
xml:spring:@status(released)
层次结构搜索必须在一个后跟嵌套级别的较高级别开始。不能以嵌套的属性或标记开始然后在层次结构中指定一个更高级别的元素。
解决方法:
xml:@status(released):spring